# v850 shr # 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 4, r1 seti 0x00000000, r2 shr r1, r2 flags z reg r2, 0 noflags seti 4, r1 seti 0x00000001, r2 shr r1, r2 flags z reg r2, 0 noflags seti 4, r1 seti 0x00000008, r2 shr r1, r2 flags c + z reg r2, 0 noflags seti 0x00000000, r2 shr 4, r2 flags z reg r2, 0 noflags seti 0x00000001, r2 shr 4, r2 flags z reg r2, 0 noflags seti 0x00000008, r2 shr 4, 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 shr r1, r2 flags s reg r2, 0xffffffff noflags seti 0xffffffff, r2 shr 0, r2 flags s reg r2, 0xffffffff # Zere is shifted into the MSB # S is 1 if the result is negative, else 0 noflags seti 1, r1 seti 0x80000000, r2 shr r1, r2 flags 0 reg r2, 0x40000000 noflags seti 1, r1 seti 0x40000000, r2 shr r1, r2 flags 0 reg r2, 0x20000000 pass