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