# mach: bpf # output: pass\nexit 0 (0x0)\n ;;; endle.s ;;; Tests for BPF endianness-conversion instructions in simulator ;;; running in LITTLE ENDIAN ;;; ;;; Both 'be' and 'le' ISAs have both endbe and endle instructions. .include "testutils.inc" .text .global main .type main, @function main: lddw %r1, 0x12345678deadbeef endbe %r1, 64 fail_ne %r1, 0xefbeadde78563412 endbe %r1, 64 fail_ne %r1, 0x12345678deadbeef ;; `bitsize` < 64 will truncate endbe %r1, 32 fail_ne %r1, 0xefbeadde endbe %r1, 32 fail_ne %r1, 0xdeadbeef endbe %r1, 16 fail_ne %r1, 0xefbe endbe %r1, 16 fail_ne %r1, 0xbeef ;; endle on le should be noop (except truncate) lddw %r1, 0x12345678deadbeef endle %r1, 64 fail_ne %r1, 0x12345678deadbeef endle %r1, 32 fail_ne %r1, 0xdeadbeef endle %r1, 16 fail_ne %r1, 0xbeef pass