about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2025-07-03 10:58:53 +0200
committerptitSeb <sebastien.chev@gmail.com>2025-07-03 10:58:53 +0200
commitd56464d01d2c0c6e0c9723ecc57e18fb6d39e8b1 (patch)
tree630814e07d4aff888de4fd8a80c0d9096cbda39b
parentaccbbe83e24f4f8671dad7230270a30008bf17f8 (diff)
downloadbox64-d56464d01d2c0c6e0c9723ecc57e18fb6d39e8b1.tar.gz
box64-d56464d01d2c0c6e0c9723ecc57e18fb6d39e8b1.zip
[ARM64_DYNAREC] Added unused LRCPC emitters
-rw-r--r--src/dynarec/arm64/arm64_emitter.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/dynarec/arm64/arm64_emitter.h b/src/dynarec/arm64/arm64_emitter.h
index 680647b4..e41d9df8 100644
--- a/src/dynarec/arm64/arm64_emitter.h
+++ b/src/dynarec/arm64/arm64_emitter.h
@@ -2488,4 +2488,14 @@ int convert_bitmask(uint64_t bitmask);
 //SHA256 hash update (part 2)
 #define SHA256H2(Vd, Vn, Vm)        EMIT(SHA256H2_gen(Vm, Vn, Vd))
 
+// LRCPC extension
+
+#define LDAPR_gen(sz, Rn, Rt)   ((sz)<<30 | 0b111<<27 | 1<<23 | 1<<21 | 0b11111<<16 | 1<<15 | 0b100<<12 | (Rn)<<5 | (Rt))
+#define LDAPRx(Rt, Rn)      EMIT(LDAPR_gen(0b11, Rn, Rt))
+#define LDAPRw(Rt, Rn)      EMIT(LDAPR_gen(0b10, Rn, Rt))
+#define LDAPRxw(Rt, Rn)     EMIT(LDAPR_gen(0b10+rex.w, Rn, Rt))
+#define LDAPRz(Rt, Rn)      EMIT(LDAPR_gen(rex.is32bits?0b10:0b11, Rn, Rt))
+#define LDAPRH(Rt, Rn)      EMIT(LDAPR_gen(0b01, Rn, Rt))
+#define LDAPRB(Rt, Rn)      EMIT(LDAPR_gen(0b00, Rn, Rt))
+
 #endif  //__ARM64_EMITTER_H__