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