mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-20 18:50:21 +02:00
Correct extra regressions found by the call.tst test case.
* lib/jit_arm.c, lib/jit_mips-cpu.c, lib/jit_mips.c: Correct regressions when patching jit_calli for a forward function. * lib/jit_ppc-cpu.c: Correct wrong arguments to ANDI opcode in jit_getarg_u{c,s} implementation.
This commit is contained in:
parent
3ee09ecc64
commit
1287a2d448
5 changed files with 40 additions and 30 deletions
|
@ -654,7 +654,9 @@ static jit_word_t _bmci(jit_state_t*,jit_word_t,jit_int32_t,jit_word_t);
|
|||
# define callr(r0) _callr(_jit, r0)
|
||||
static void _callr(jit_state_t*,jit_int32_t);
|
||||
# define calli(i0) _calli(_jit, i0)
|
||||
static jit_word_t _calli(jit_state_t*,jit_word_t);
|
||||
static void _calli(jit_state_t*,jit_word_t);
|
||||
# define calli_p(i0) _calli_p(_jit, i0)
|
||||
static jit_word_t _calli_p(jit_state_t*,jit_word_t);
|
||||
# define prolog(node) _prolog(_jit, node)
|
||||
static void _prolog(jit_state_t*,jit_node_t*);
|
||||
# define epilog(node) _epilog(_jit, node)
|
||||
|
@ -2681,13 +2683,21 @@ _callr(jit_state_t *_jit, jit_int32_t r0)
|
|||
NOP(1);
|
||||
}
|
||||
|
||||
static jit_word_t
|
||||
static void
|
||||
_calli(jit_state_t *_jit, jit_word_t i0)
|
||||
{
|
||||
movi(_T9_REGNO, i0);
|
||||
JALR(_T9_REGNO);
|
||||
NOP(1);
|
||||
}
|
||||
|
||||
static jit_word_t
|
||||
_calli_p(jit_state_t *_jit, jit_word_t i0)
|
||||
{
|
||||
jit_word_t word;
|
||||
|
||||
word = _jit->pc.w;
|
||||
movi(_T9_REGNO, i0);
|
||||
movi_p(_T9_REGNO, i0);
|
||||
JALR(_T9_REGNO);
|
||||
NOP(1);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue