| # 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 |