diff options
Diffstat (limited to 'sim/testsuite/v850/bsh.cgs')
-rw-r--r-- | sim/testsuite/v850/bsh.cgs | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/sim/testsuite/v850/bsh.cgs b/sim/testsuite/v850/bsh.cgs new file mode 100644 index 00000000000..e9d216e149d --- /dev/null +++ b/sim/testsuite/v850/bsh.cgs @@ -0,0 +1,55 @@ +# v850 bsh +# mach: v850e +# as(v850e): -mv850e + + .include "testutils.inc" + + seti 0x12345678, r1 + bsh r1, r2 + + flags 0 + reg r2, 0x34127856 + +# CY is 1 if one or more bytes in the result half-word is zero, else 0 + + seti 0x12345600, r1 + bsh r1, r2 + flags c + reg r2, 0x34120056 + + seti 0x12340078, r1 + bsh r1, r2 + flags c + reg r2, 0x34127800 + + seti 0x12005678, r1 + bsh r1, r2 + flags 0 + reg r2, 0x00127856 + + seti 0x00345678, r1 + bsh r1, r2 + flags 0 + reg r2, 0x34007856 + +# S is set if the result is negative + + seti 0x00800000, r1 + bsh r1, r2 + flags s + c + z + reg r2, 0x80000000 + +# Z is set if the result is zero +# According to NEC, the Z flag depends on only the lower half-word + + seti 0x00000000, r1 + bsh r1, r2 + flags c + z + reg r2, 0x00000000 + + seti 0xffff0000, r1 + bsh r1, r2 + flags c + s + z + reg r2, 0xffff0000 + + pass |