aboutsummaryrefslogtreecommitdiff
path: root/src/lj_target_arm64.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lj_target_arm64.h')
-rw-r--r--src/lj_target_arm64.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/lj_target_arm64.h b/src/lj_target_arm64.h
index 520023ae..a207a2ba 100644
--- a/src/lj_target_arm64.h
+++ b/src/lj_target_arm64.h
@@ -132,9 +132,9 @@ static LJ_AINLINE uint32_t *exitstub_trace_addr_(uint32_t *p, uint32_t exitno)
132#define A64F_IMMR(x) ((x) << 16) 132#define A64F_IMMR(x) ((x) << 16)
133#define A64F_U16(x) ((x) << 5) 133#define A64F_U16(x) ((x) << 5)
134#define A64F_U12(x) ((x) << 10) 134#define A64F_U12(x) ((x) << 10)
135#define A64F_S26(x) (x) 135#define A64F_S26(x) (((uint32_t)(x) & 0x03ffffffu))
136#define A64F_S19(x) (((uint32_t)(x) & 0x7ffffu) << 5) 136#define A64F_S19(x) (((uint32_t)(x) & 0x7ffffu) << 5)
137#define A64F_S14(x) ((x) << 5) 137#define A64F_S14(x) (((uint32_t)(x) & 0x3fffu) << 5)
138#define A64F_S9(x) ((x) << 12) 138#define A64F_S9(x) ((x) << 12)
139#define A64F_BIT(x) ((x) << 19) 139#define A64F_BIT(x) ((x) << 19)
140#define A64F_SH(sh, x) (((sh) << 22) | ((x) << 10)) 140#define A64F_SH(sh, x) (((sh) << 22) | ((x) << 10))
@@ -145,6 +145,9 @@ static LJ_AINLINE uint32_t *exitstub_trace_addr_(uint32_t *p, uint32_t exitno)
145#define A64F_LSL16(x) (((x) / 16) << 21) 145#define A64F_LSL16(x) (((x) / 16) << 21)
146#define A64F_BSH(sh) ((sh) << 10) 146#define A64F_BSH(sh) ((sh) << 10)
147 147
148/* Check for valid field range. */
149#define A64F_S_OK(x, b) ((((x) + (1 << (b-1))) >> (b)) == 0)
150
148typedef enum A64Ins { 151typedef enum A64Ins {
149 A64I_S = 0x20000000, 152 A64I_S = 0x20000000,
150 A64I_X = 0x80000000, 153 A64I_X = 0x80000000,