diff options
author | Mike Pall <mike> | 2016-11-29 19:30:40 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2016-11-29 19:30:40 +0100 |
commit | 3ad2bbf58600f8ba2918b56b0a7ab305df19cfe5 (patch) | |
tree | 28771b8efec0975a95831ebcac212f7955166191 /src/lj_target_arm64.h | |
parent | 6538c8a18711a6eb009def36050acd5f02e42aec (diff) | |
download | luajit-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.h | 6 |
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 | ||