1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 12:12:47 +01:00
llvm-mirror/test/MC/AVR/inst-elpm.s
Ayke van Laethem 75eff6e3b0 [AVR] Disassemble instructions with fixed Z operand
Some instructions have a fixed Z register and don't have an explicit
register operand. This can be worked around by simply printing the
operand directly if the particular register class is detected.

The LPM and ELPM instructions also needed a custom decoder, which is
also included in this patch.

Differential Revision: https://reviews.llvm.org/D82088
2020-06-23 02:17:53 +02:00

30 lines
700 B
ArmAsm

; RUN: llvm-mc -triple avr -mattr=elpm,elpmx -show-encoding < %s | FileCheck %s
; RUN: llvm-mc -filetype=obj -triple avr -mattr=elpm,elpmx < %s | llvm-objdump -d --mattr=elpm,elpmx - | FileCheck -check-prefix=CHECK-INST %s
foo:
elpm
elpm r3, Z
elpm r23, Z
elpm r8, Z+
elpm r0, Z+
; CHECK: elpm ; encoding: [0xd8,0x95]
; CHECK: elpm r3, Z ; encoding: [0x36,0x90]
; CHECK: elpm r23, Z ; encoding: [0x76,0x91]
; CHECK: elpm r8, Z+ ; encoding: [0x87,0x90]
; CHECK: elpm r0, Z+ ; encoding: [0x07,0x90]
; CHECK-INST: elpm
; CHECK-INST: elpm r3, Z
; CHECK-INST: elpm r23, Z
; CHECK-INST: elpm r8, Z+
; CHECK-INST: elpm r0, Z+