diff options
Diffstat (limited to 'sim/testsuite/sim/sh64/media/xor.cgs')
-rw-r--r-- | sim/testsuite/sim/sh64/media/xor.cgs | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/sim/testsuite/sim/sh64/media/xor.cgs b/sim/testsuite/sim/sh64/media/xor.cgs new file mode 100644 index 00000000000..80278f0a3e0 --- /dev/null +++ b/sim/testsuite/sim/sh64/media/xor.cgs @@ -0,0 +1,54 @@ +# sh testcase for xor $rm, $rn, $rd -*- Asm -*- +# mach: all +# as: -isa=shmedia +# ld: -m shelf64 + + .include "media/testutils.inc" + + start +init: + pta wrong, tr0 + +xor1: + # 0 xor 0 = 0. + movi 0, r0 + movi 0, r1 + xor r0, r1, r2 + bnei r2, 0, tr0 + +xor2: + # 0 xor 1 = 1. + movi 0, r0 + movi 1, r1 + xor r0, r1, r2 + bnei r2, 1, tr0 + +xor3: + # 1 xor 0 = 1. + movi 1, r0 + movi 0, r1 + xor r0, r1, r2 + bnei r2, 1, tr0 + +xor4: + # 1 xor 1 = 0. + movi 1, r0 + movi 1, r1 + xor r0, r1, r2 + bnei r2, 0, tr0 + +xor5: + movi 1, r0 + shlli r0, 63, r0 + ori r0, 1, r0 + movi 3, r1 + xor r0, r1, r2 + andi r2, 255, r2 + bnei r2, 2, tr0 + +okay: + pass + +wrong: + fail + |