# v850 shl # mach: all .include "testutils.inc" # CY is set to 1 if the bit shifted out last is 1, else 0 # OV is set to zero. # Z is set if the result is 0, else 0 noflags seti 1, r1 seti 0x00000000, r2 shl r1, r2 flags z reg r2, 0 noflags seti 1, r1 seti 0x80000000, r2 shl r1, r2 flags c + z reg r2, 0 noflags seti 0x00000000, r2 shl 1, r2 flags z reg r2, 0 noflags seti 0x80000000, r2 shl 1, r2 flags c + z reg r2, 0 # However, if the number of shifts is 0, CY is 0. noflags seti 0, r1 seti 0xffffffff, r2 shl r1, r2 flags s reg r2, 0xffffffff noflags seti 0xffffffff, r2 shl 0, r2 flags s reg r2, 0xffffffff # Zero is shifted into the LSB # S is 1 if the result is negative, else 0 noflags seti 1, r1 seti 0x4000000f, r2 shl r1, r2 flags s reg r2, 0x8000001e noflags seti 0x4000000f, r2 shl 1, r2 flags s reg r2, 0x8000001e pass