143932Sdcs# mach: bpf 243932Sdcs# output: pass\nexit 0 (0x0)\n 343932Sdcs;; mov.s 443932Sdcs;; Tests for mov and mov32 instructions 543932Sdcs 643932Sdcs .include "testutils.inc" 743932Sdcs 843932Sdcs .text 943932Sdcs .global main 1043932Sdcs .type main, @function 1143932Sdcsmain: 1243932Sdcs ;; some basic sanity checks 1343932Sdcs mov32 %r1, 5 1443932Sdcs fail_ne %r1, 5 1543932Sdcs 1643932Sdcs mov32 %r2, %r1 1743932Sdcs fail_ne %r2, 5 1843932Sdcs 1943932Sdcs mov %r2, %r1 2043932Sdcs fail_ne %r2, 5 2143932Sdcs 2243932Sdcs mov %r1, -666 2343932Sdcs fail_ne %r1, -666 2443932Sdcs 2543932Sdcs ;; should NOT sign extend 2643932Sdcs mov32 %r1, -1 2743932Sdcs fail_ne %r1, 0x00000000ffffffff 2843932Sdcs 2943932Sdcs ;; should sign extend 3043932Sdcs mov %r2, -1 3143932Sdcs fail_ne %r2, 0xffffffffffffffff 3243932Sdcs 3343932Sdcs mov %r3, 0x80000000 3443932Sdcs 3550476Speter ;; should NOT sign extend 3643932Sdcs mov32 %r4, %r3 3743932Sdcs fail_ne %r4, 0x0000000080000000 3843932Sdcs 3943932Sdcs ;; should sign extend 4043932Sdcs mov %r5, %r3 4143932Sdcs fail_ne %r5, 0xffffffff80000000 4243932Sdcs 4343932Sdcs mov32 %r1, -2147483648 4443932Sdcs mov32 %r1, %r1 4543932Sdcs fail_ne32 %r1, -2147483648 4643932Sdcs 4743932Sdcs ;; casting shenanigans 4885451Speter mov %r1, %r1 4943932Sdcs fail_ne %r1, +2147483648 5043932Sdcs mov32 %r2, -1 5143932Sdcs mov %r2, %r2 5243932Sdcs fail_ne %r2, +4294967295 5343932Sdcs 5443932Sdcs pass 5543932Sdcs