1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-18 01:30:27 +02:00

sparc: Add initial jit_va_ calls to sparc

* lib/jit_sparc-cpu.c, lib/jit_sparc-fpu.c, lib/jit_sparc.c:
	Add base support to jit vararg functions to the sparc backend.
This commit is contained in:
pcpa 2015-05-20 14:33:31 -03:00
parent 9a90a28360
commit bd38cfa9c9
4 changed files with 64 additions and 0 deletions

View file

@ -362,6 +362,8 @@ _dbw(jit_state_t*,jit_int32_t,jit_word_t,jit_int32_t,jit_float64_t*);
# define bordi_d(i0, r0, i1) dbw(SPARC_FBO, i0, r0, i1)
# define bunordr_d(i0, r0, r1) dbr(SPARC_FBU, i0, r0, r1)
# define bunordi_d(i0, r0, i1) dbw(SPARC_FBU, i0, r0, i1)
# define vaarg_d(r0, r1) _vaarg_d(_jit, r0, r1)
static void _vaarg_d(jit_state_t*, jit_int32_t, jit_int32_t);
#endif
#if CODE
@ -757,4 +759,16 @@ _dbw(jit_state_t *_jit, jit_int32_t cc,
NOP();
return (w);
}
static void
_vaarg_d(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1)
{
assert(_jitc->function->self.call & jit_call_varargs);
/* Load argument. */
ldr_d(r0, r1);
/* Update vararg stack pointer. */
addi(r1, r1, 8);
}
#endif