1# mach: bpf 2# output: pass\nexit 0 (0x0)\n 3;;; endle.s 4;;; Tests for BPF endianness-conversion instructions in simulator 5;;; running in LITTLE ENDIAN 6;;; 7;;; Both 'be' and 'le' ISAs have both endbe and endle instructions. 8 9 .include "testutils.inc" 10 11 .text 12 .global main 13 .type main, @function 14main: 15 lddw %r1, 0x12345678deadbeef 16 endbe %r1, 64 17 fail_ne %r1, 0xefbeadde78563412 18 endbe %r1, 64 19 fail_ne %r1, 0x12345678deadbeef 20 21 ;; `bitsize` < 64 will truncate 22 endbe %r1, 32 23 fail_ne %r1, 0xefbeadde 24 endbe %r1, 32 25 fail_ne %r1, 0xdeadbeef 26 27 endbe %r1, 16 28 fail_ne %r1, 0xefbe 29 endbe %r1, 16 30 fail_ne %r1, 0xbeef 31 32 ;; endle on le should be noop (except truncate) 33 lddw %r1, 0x12345678deadbeef 34 endle %r1, 64 35 fail_ne %r1, 0x12345678deadbeef 36 37 endle %r1, 32 38 fail_ne %r1, 0xdeadbeef 39 40 endle %r1, 16 41 fail_ne %r1, 0xbeef 42 43 pass 44