aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/target/armv8_opcodes.c14
-rw-r--r--src/target/armv8_opcodes.h8
2 files changed, 15 insertions, 7 deletions
diff --git a/src/target/armv8_opcodes.c b/src/target/armv8_opcodes.c
index 6887b295..96db7287 100644
--- a/src/target/armv8_opcodes.c
+++ b/src/target/armv8_opcodes.c
@@ -68,13 +68,13 @@ static const uint32_t t32_opcodes[ARMV8_OPC_NUM] = {
[ARMV8_OPC_DCCISW] = ARMV4_5_MCR(15, 0, 0, 7, 14, 2),
[ARMV8_OPC_DCCIVAC] = ARMV4_5_MCR(15, 0, 0, 7, 14, 1),
[ARMV8_OPC_ICIVAU] = ARMV4_5_MCR(15, 0, 0, 7, 5, 1),
- [ARMV8_OPC_HLT] = ARMV8_HLT_A1(11),
- [ARMV8_OPC_LDRB_IP] = ARMV4_5_LDRB_IP(1, 0),
- [ARMV8_OPC_LDRH_IP] = ARMV4_5_LDRH_IP(1, 0),
- [ARMV8_OPC_LDRW_IP] = ARMV4_5_LDRW_IP(1, 0),
- [ARMV8_OPC_STRB_IP] = ARMV4_5_STRB_IP(1, 0),
- [ARMV8_OPC_STRH_IP] = ARMV4_5_STRH_IP(1, 0),
- [ARMV8_OPC_STRW_IP] = ARMV4_5_STRW_IP(1, 0),
+ [ARMV8_OPC_HLT] = ARMV8_HLT_T1(11),
+ [ARMV8_OPC_LDRB_IP] = ARMV8_LDRB_IP_T3(1, 0),
+ [ARMV8_OPC_LDRH_IP] = ARMV8_LDRH_IP_T3(1, 0),
+ [ARMV8_OPC_LDRW_IP] = ARMV8_LDRW_IP_T3(1, 0),
+ [ARMV8_OPC_STRB_IP] = ARMV8_STRB_IP_T3(1, 0),
+ [ARMV8_OPC_STRH_IP] = ARMV8_STRH_IP_T3(1, 0),
+ [ARMV8_OPC_STRW_IP] = ARMV8_STRW_IP_T3(1, 0),
};
void armv8_select_opcodes(struct armv8_common *armv8, bool state_is_aarch64)
diff --git a/src/target/armv8_opcodes.h b/src/target/armv8_opcodes.h
index 217cc64c..239c4c5f 100644
--- a/src/target/armv8_opcodes.h
+++ b/src/target/armv8_opcodes.h
@@ -164,10 +164,18 @@
#define ARMV8_LDRH_IP(Rd, Rn) (0x78402400 | (Rn << 5) | Rd)
#define ARMV8_LDRW_IP(Rd, Rn) (0xb8404400 | (Rn << 5) | Rd)
+#define ARMV8_LDRB_IP_T3(Rd, Rn) (0xf8100b01 | (Rn << 16) | (Rd << 12))
+#define ARMV8_LDRH_IP_T3(Rd, Rn) (0xf8300b02 | (Rn << 16) | (Rd << 12))
+#define ARMV8_LDRW_IP_T3(Rd, Rn) (0xf8500b04 | (Rn << 16) | (Rd << 12))
+
#define ARMV8_STRB_IP(Rd, Rn) (0x38001400 | (Rn << 5) | Rd)
#define ARMV8_STRH_IP(Rd, Rn) (0x78002400 | (Rn << 5) | Rd)
#define ARMV8_STRW_IP(Rd, Rn) (0xb8004400 | (Rn << 5) | Rd)
+#define ARMV8_STRB_IP_T3(Rd, Rn) (0xf8000b01 | (Rn << 16) | (Rd << 12))
+#define ARMV8_STRH_IP_T3(Rd, Rn) (0xf8200b02 | (Rn << 16) | (Rd << 12))
+#define ARMV8_STRW_IP_T3(Rd, Rn) (0xf8400b04 | (Rn << 16) | (Rd << 12))
+
#define ARMV8_MOV_GPR_VFP(Rd, Rn, Index) (0x4e083c00 | (Index << 20) | (Rn << 5) | Rd)
#define ARMV8_MOV_VFP_GPR(Rd, Rn, Index) (0x4e081c00 | (Index << 20) | (Rn << 5) | Rd)