1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-06 15:40:29 +02:00

S390: Add support for 32 bit.

* include/lightning.h, include/lightning/jit_private.h,
        include/lightning/jit_s390x.h, lib/jit_disasm.c,
        lib/jit_s390x-cpu.c, lib/jit_s390x-fpu.c, lib/jit_s390x-sz.c,
        lib/jit_s390x.c, lib/jit_size.c, lib/lightning.c:
	Add support for generating jit for s390 32 bit. This change
	also removed %f15 from the list of temporaries fpr registers;
	it was not being used, but if were, it would corrupt the
	stack frame because the spill address would overwrite grp
	offsets.
This commit is contained in:
pcpa 2015-01-08 10:45:30 -02:00
parent af9df5faeb
commit 32c4f90a2b
11 changed files with 876 additions and 173 deletions

View file

@ -115,7 +115,7 @@ typedef jit_uint64_t jit_regset_t;
# define JIT_RET _R0
# define JIT_FRET _V0
typedef jit_uint64_t jit_regset_t;
#elif defined(__s390x__)
#elif defined(__s390__) || defined(__s390x__)
# define JIT_SP _R15
# define JIT_RET _R2
# define JIT_FRET _F0

View file

@ -33,7 +33,11 @@ typedef enum {
#define jit_r_num() 3
#define jit_v(i) (_R11 + ((i) << 1))
#define jit_v_num() 3
#define jit_arg_f_reg_p(i) ((i) >= 0 && (i) <= 4)
#if __WORDSIZE == 32
# define jit_arg_f_reg_p(i) ((i) >= 0 && (i) <= 2)
#else
# define jit_arg_f_reg_p(i) ((i) >= 0 && (i) <= 4)
#endif
#define jit_f(i) (_F8 + (i))
#define jit_f_num() 6
#define JIT_R0 _R12