54 lines
1.1 KiB
ArmAsm
54 lines
1.1 KiB
ArmAsm
# 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
|