diff options
Diffstat (limited to 'sim/testsuite/bpf/mov.s')
-rw-r--r-- | sim/testsuite/bpf/mov.s | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/sim/testsuite/bpf/mov.s b/sim/testsuite/bpf/mov.s new file mode 100644 index 00000000000..6665450468c --- /dev/null +++ b/sim/testsuite/bpf/mov.s @@ -0,0 +1,54 @@ +# mach: bpf +# output: pass\nexit 0 (0x0)\n +;; mov.s +;; Tests for mov and mov32 instructions + + .include "testutils.inc" + + .text + .global main + .type main, @function +main: + ;; some basic sanity checks + mov32 %r1, 5 + fail_ne %r1, 5 + + mov32 %r2, %r1 + fail_ne %r2, 5 + + mov %r2, %r1 + fail_ne %r2, 5 + + mov %r1, -666 + fail_ne %r1, -666 + + ;; should NOT sign extend + mov32 %r1, -1 + fail_ne %r1, 0x00000000ffffffff + + ;; should sign extend + mov %r2, -1 + fail_ne %r2, 0xffffffffffffffff + + mov %r3, 0x80000000 + + ;; should NOT sign extend + mov32 %r4, %r3 + fail_ne %r4, 0x0000000080000000 + + ;; should sign extend + mov %r5, %r3 + fail_ne %r5, 0xffffffff80000000 + + mov32 %r1, -2147483648 + mov32 %r1, %r1 + fail_ne32 %r1, -2147483648 + + ;; casting shenanigans + mov %r1, %r1 + fail_ne %r1, +2147483648 + mov32 %r2, -1 + mov %r2, %r2 + fail_ne %r2, +4294967295 + + pass |