2 # output: pass\nexit 0 (0x0)\n
4 ;;; Tests for ALU64 BPF instructions in simulator
6 .include "testutils.inc"
29 mul %r2, %r2 ; r2 = 64
32 mul %r1, %r2 ; r1 = -576
38 fail_ne %r1, 110075314176
44 fail_ne %r1, -11007531
49 lddw %r1, 0xaaaaaaaa55555555
50 and %r1, 0x55aaaaaa ; we still only have 32-bit imm.
51 fail_ne %r1, 0x0000000055000000
52 lddw %r2, 0x5555555a5aaaaaaa
54 fail_ne %r2, 0x0000000050000000
58 fail_ne %r2, 0xffffffffdeadbeef ; 0xdeadbeef gets sign extended
59 lddw %r1, 0xdead00000000beef
60 lddw %r2, 0x0000123456780000
62 fail_ne %r1, 0xdead12345678beef
67 fail_ne %r1, 0xfffffef56df77800 ; because deadbeef gets sign ext.
70 fail_ne %r1, 0xdeadbeef00000000
74 fail_ne %r1, 0x001bd5b7dde00000 ; 0xdeadbeef 00000000 >> 0xb
76 fail_ne %r1, 0x00000000deadbeef
80 fail_ne %r1, 0x0000000000deadbe
81 lsh %r1, 40 ; r1 = 0xdead be00 0000 0000
82 arsh %r1, %r2 ; r1 arsh (r2 == 21)
83 fail_ne %r1, 0xfffffef56df00000
98 fail_ne %r1, 0x7eadbeea