diff options
author | Andy Wingo <wingo@igalia.com> | 2019-04-25 19:12:55 +0200 |
---|---|---|
committer | Andy Wingo <wingo@igalia.com> | 2019-04-25 19:12:55 +0200 |
commit | 2602f17fb4e472b5a89af026fe00bffe662f1d43 (patch) | |
tree | a336517941be65a8bdf5d797779f348ac71c9e6b /lightening/x86.c | |
parent | af4e0422aee14918b6845bf23aa95a3980179027 (diff) | |
download | guile-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.c | 10 |
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); |