On Thu, May 26, 2011 at 11:10 PM, Richard Henderson <r...@twiddle.net> wrote: > On 05/26/2011 12:14 PM, Blue Swirl wrote: >> On Thu, May 26, 2011 at 4:56 PM, Richard Henderson <r...@twiddle.net> wrote: >>> On 05/26/2011 05:36 AM, Kirill Batuzov wrote: >>>>> x = (int32_t)x >> (int32_t)y; >>>>> >>>> This expression has an implementation-defined behavior accroding to >>>> C99 6.5.7 so we decided to emulate signed shifts by hand. >>> >>> Technically, yes. In practice, no. GCC, ICC, LLVM, MSVC all know >>> what the user wants here and will implement it "properly". >> >> Can't this be probed by configure? Then a wrapper could be introduced >> for signed shifts. > > I don't see the point. The C99 implementation defined escape hatch > exists for weird cpus. Which we won't be supporting as a QEMU host.
Maybe not, but a compiler with this property could arrive. For example, GCC developers could decide that since this weirdness is allowed by the standard, it may be implemented as well.