endle.s 1011 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. .include "testutils.inc"
  9. .text
  10. .global main
  11. .type main, @function
  12. main:
  13. lddw %r1, 0x12345678deadbeef
  14. endbe %r1, 64
  15. fail_ne %r1, 0xefbeadde78563412
  16. endbe %r1, 64
  17. fail_ne %r1, 0x12345678deadbeef
  18. ;; `bitsize` < 64 will truncate
  19. endbe %r1, 32
  20. fail_ne %r1, 0xefbeadde
  21. endbe %r1, 32
  22. fail_ne %r1, 0xdeadbeef
  23. endbe %r1, 16
  24. fail_ne %r1, 0xefbe
  25. endbe %r1, 16
  26. fail_ne %r1, 0xbeef
  27. ;; endle on le should be noop (except truncate)
  28. lddw %r1, 0x12345678deadbeef
  29. endle %r1, 64
  30. fail_ne %r1, 0x12345678deadbeef
  31. endle %r1, 32
  32. fail_ne %r1, 0xdeadbeef
  33. endle %r1, 16
  34. fail_ne %r1, 0xbeef
  35. pass