summaryrefslogtreecommitdiff
path: root/src/lj_target_arm64.h
diff options
context:
space:
mode:
authorMike Pall <mike>2016-11-29 19:30:40 +0100
committerMike Pall <mike>2016-11-29 19:30:40 +0100
commit3ad2bbf58600f8ba2918b56b0a7ab305df19cfe5 (patch)
tree28771b8efec0975a95831ebcac212f7955166191 /src/lj_target_arm64.h
parent6538c8a18711a6eb009def36050acd5f02e42aec (diff)
downloadluajit-3ad2bbf58600f8ba2918b56b0a7ab305df19cfe5.tar.gz
luajit-3ad2bbf58600f8ba2918b56b0a7ab305df19cfe5.tar.bz2
luajit-3ad2bbf58600f8ba2918b56b0a7ab305df19cfe5.zip
ARM64: Make use of tbz/tbnz and cbz/cbnz.
Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com.
Diffstat (limited to 'src/lj_target_arm64.h')
-rw-r--r--src/lj_target_arm64.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/lj_target_arm64.h b/src/lj_target_arm64.h
index 1cd02fe8..6c8771c6 100644
--- a/src/lj_target_arm64.h
+++ b/src/lj_target_arm64.h
@@ -127,7 +127,9 @@ static LJ_AINLINE uint32_t *exitstub_trace_addr_(uint32_t *p, uint32_t exitno)
127#define A64F_U12(x) ((x) << 10) 127#define A64F_U12(x) ((x) << 10)
128#define A64F_S26(x) (x) 128#define A64F_S26(x) (x)
129#define A64F_S19(x) ((x) << 5) 129#define A64F_S19(x) ((x) << 5)
130#define A64F_S14(x) ((x) << 5)
130#define A64F_S9(x) ((x) << 12) 131#define A64F_S9(x) ((x) << 12)
132#define A64F_BIT(x) ((x) << 19)
131#define A64F_SH(sh, x) (((sh) << 22) | ((x) << 10)) 133#define A64F_SH(sh, x) (((sh) << 22) | ((x) << 10))
132#define A64F_EX(ex) (A64I_EX | ((ex) << 13)) 134#define A64F_EX(ex) (A64I_EX | ((ex) << 13))
133#define A64F_EXSH(ex,x) (A64I_EX | ((ex) << 13) | ((x) << 10)) 135#define A64F_EXSH(ex,x) (A64I_EX | ((ex) << 13) | ((x) << 10))
@@ -235,6 +237,10 @@ typedef enum A64Ins {
235 A64I_BL = 0x94000000, 237 A64I_BL = 0x94000000,
236 A64I_BR = 0xd61f0000, 238 A64I_BR = 0xd61f0000,
237 A64I_BLR = 0xd63f0000, 239 A64I_BLR = 0xd63f0000,
240 A64I_TBZ = 0x36000000,
241 A64I_TBNZ = 0x37000000,
242 A64I_CBZ = 0x34000000,
243 A64I_CBNZ = 0x35000000,
238 244
239 A64I_NOP = 0xd503201f, 245 A64I_NOP = 0xd503201f,
240 246