summaryrefslogtreecommitdiff
path: root/lightening/x86.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@igalia.com>2019-04-25 19:12:55 +0200
committerAndy Wingo <wingo@igalia.com>2019-04-25 19:12:55 +0200
commit2602f17fb4e472b5a89af026fe00bffe662f1d43 (patch)
treea336517941be65a8bdf5d797779f348ac71c9e6b /lightening/x86.c
parentaf4e0422aee14918b6845bf23aa95a3980179027 (diff)
downloadguile-2602f17fb4e472b5a89af026fe00bffe662f1d43.tar.gz
Simplify register representation again
There's only one flag, "callee-save". Also the regno range is limited to 0-63 inclusive, to allow for cheap register sets as uint64_t values.
Diffstat (limited to 'lightening/x86.c')
-rw-r--r--lightening/x86.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/lightening/x86.c b/lightening/x86.c
index ad0e8489c..144816dfd 100644
--- a/lightening/x86.c
+++ b/lightening/x86.c
@@ -617,7 +617,7 @@ jit_move_operands(jit_state_t *_jit, jit_operand_t *dst, jit_operand_t *src,
for (size_t i = 0; i < argc; i++) {
switch (src[i].kind) {
case JIT_OPERAND_KIND_GPR:
- src_gprs |= 1ULL << rn(src[i].loc.gpr.gpr);
+ src_gprs |= 1ULL << jit_gpr_regno(src[i].loc.gpr.gpr);
break;
case JIT_OPERAND_KIND_FPR:
case JIT_OPERAND_KIND_IMM:
@@ -629,20 +629,20 @@ jit_move_operands(jit_state_t *_jit, jit_operand_t *dst, jit_operand_t *src,
switch (dst[i].kind) {
case JIT_OPERAND_KIND_GPR: {
ASSERT(dst[i].loc.gpr.addend == 0);
- uint64_t bit = 1ULL << rn(dst[i].loc.gpr.gpr);
+ uint64_t bit = 1ULL << jit_gpr_regno(dst[i].loc.gpr.gpr);
ASSERT((dst_gprs & bit) == 0);
dst_gprs |= bit;
break;
}
case JIT_OPERAND_KIND_FPR: {
- uint64_t bit = 1ULL << rn(dst[i].loc.fpr);
+ uint64_t bit = 1ULL << jit_fpr_regno(dst[i].loc.fpr);
ASSERT((dst_fprs & bit) == 0);
dst_fprs |= bit;
break;
}
case JIT_OPERAND_KIND_MEM: {
ASSERT(dst[i].loc.mem.addend == 0);
- uint64_t bit = 1ULL << rn(dst[i].loc.mem.base);
+ uint64_t bit = 1ULL << jit_gpr_regno(dst[i].loc.mem.base);
dst_mem_base_gprs |= bit;
break;
}
@@ -830,7 +830,7 @@ jit_callr(jit_state_t *_jit, jit_gpr_t f, size_t argc, jit_operand_t args[])
{
size_t spill_size = prepare_call_args(_jit, argc, args);
- callr(_jit, rn(f));
+ callr(_jit, jit_gpr_regno(f));
if (spill_size)
jit_addi(_jit, JIT_SP, JIT_SP, spill_size);