Issue with templates and asm register constraints

2016-04-13 Thread Alex Kodat
Well I tried posting this to the gcc listserv and was met with deafening silence so will try cross-posting this to the 390 list (sorry). Compiling with gcc/g++ for s390x, register constraints don't allow specification of specific registers as with x86. But, because certain instructions work on p

Re: Issue with templates and asm register constraints

2016-04-13 Thread Neale Ferguson
While I believe things are misbehaving, is there any reason not to use the _builtin_ functions to do the atomic exchange? If you need to use your own then in the asm block unload %0 etc. into the registers you want, e.g.: lgr 2,%0 and code the cdsg with those registers. In the constraints

Re: Issue with templates and asm register constraints

2016-04-13 Thread Andreas Krebbel
Hi, this looks like a problem I've debugged last year: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=33661 I've also proposed a fix for that but unfortunately forgot to ping this after a while: https://gcc.gnu.org/ml/gcc-patches/2015-06/msg00838.html I'll try to get this in after GCC 6 release.

Re: Issue with templates and asm register constraints

2016-04-13 Thread Alex Kodat
Whoops, I guess I wasn’t patient enough on the gcc listserv. I got an answer on the gcc listserv from Andreas Krebbel which indicates that the bug is well known: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=33661 and that there is a fix in the works. Sorry about the noise. From: Alex Kodat [mail