# 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