mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-21 03:00:19 +02:00
MIPS: Build and pass all test cases on mips64.
* include/lightning/jit_mips.h, lib/jit_mips-cpu.c, lib/jit_mips-sz.c, lib/jit_mips.c, size: Build and pass all test cases on Irix big endian mips using the 64 bit abi.
This commit is contained in:
parent
485584546a
commit
52bfc67192
6 changed files with 704 additions and 263 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2013-10-03 Paulo Andrade <pcpa@gnu.org>
|
||||||
|
|
||||||
|
* include/lightning/jit_mips.h, lib/jit_mips-cpu.c,
|
||||||
|
lib/jit_mips-sz.c, lib/jit_mips.c, size: Build and
|
||||||
|
pass all test cases on Irix big endian mips using
|
||||||
|
the 64 bit abi.
|
||||||
|
|
||||||
2013-10-02 Paulo Andrade <pcpa@gnu.org>
|
2013-10-02 Paulo Andrade <pcpa@gnu.org>
|
||||||
|
|
||||||
* include/lightning/jit_mips.h: Add proper mips abi detection.
|
* include/lightning/jit_mips.h: Add proper mips abi detection.
|
||||||
|
|
|
@ -23,11 +23,8 @@
|
||||||
#define JIT_HASH_CONSTS 1
|
#define JIT_HASH_CONSTS 1
|
||||||
#define JIT_NUM_OPERANDS 3
|
#define JIT_NUM_OPERANDS 3
|
||||||
|
|
||||||
#if _MIPS_SIM == _ABIN32
|
#if _MIPS_SIM != _ABIO32
|
||||||
# define NEW_ABI 1
|
# define NEW_ABI 1
|
||||||
#elif _MIPS_SIM != _ABIO32
|
|
||||||
/* FIXME port to _ABI64 */
|
|
||||||
# error "Unsupported ABI"
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
#if __WORDSIZE == 32
|
#if __WORDSIZE == 32
|
||||||
#if defined(_ABIN32)
|
#if NEW_ABI
|
||||||
#define JIT_INSTR_MAX 44
|
#define JIT_INSTR_MAX 44
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
|
@ -348,11 +348,11 @@
|
||||||
12,
|
12,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
#endif /* _ABIN32 */
|
#endif /* NEW_ABI */
|
||||||
#endif /* __WORDSIZE */
|
#endif /* __WORDSIZE */
|
||||||
|
|
||||||
#if __WORDSIZE == 32
|
#if __WORDSIZE == 32
|
||||||
#if !defined(_ABIN32)
|
#if !NEW_ABI
|
||||||
#define JIT_INSTR_MAX 96
|
#define JIT_INSTR_MAX 96
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
|
@ -700,5 +700,355 @@
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
#endif /* _ABIN32 */
|
#endif /* NEW_ABI */
|
||||||
|
#endif /* __WORDSIZE */
|
||||||
|
|
||||||
|
#if __WORDSIZE == 64
|
||||||
|
#define JIT_INSTR_MAX 44
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
44,
|
||||||
|
0,
|
||||||
|
4,
|
||||||
|
28,
|
||||||
|
12,
|
||||||
|
36,
|
||||||
|
28,
|
||||||
|
28,
|
||||||
|
4,
|
||||||
|
28,
|
||||||
|
12,
|
||||||
|
36,
|
||||||
|
28,
|
||||||
|
28,
|
||||||
|
8,
|
||||||
|
32,
|
||||||
|
12,
|
||||||
|
32,
|
||||||
|
12,
|
||||||
|
32,
|
||||||
|
8,
|
||||||
|
32,
|
||||||
|
8,
|
||||||
|
32,
|
||||||
|
12,
|
||||||
|
16,
|
||||||
|
12,
|
||||||
|
16,
|
||||||
|
8,
|
||||||
|
32,
|
||||||
|
8,
|
||||||
|
32,
|
||||||
|
4,
|
||||||
|
28,
|
||||||
|
4,
|
||||||
|
28,
|
||||||
|
4,
|
||||||
|
28,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
8,
|
||||||
|
12,
|
||||||
|
8,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
8,
|
||||||
|
12,
|
||||||
|
8,
|
||||||
|
12,
|
||||||
|
4,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
8,
|
||||||
|
8,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
28,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
12,
|
||||||
|
4,
|
||||||
|
12,
|
||||||
|
4,
|
||||||
|
12,
|
||||||
|
4,
|
||||||
|
12,
|
||||||
|
4,
|
||||||
|
12,
|
||||||
|
4,
|
||||||
|
12,
|
||||||
|
4,
|
||||||
|
12,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
12,
|
||||||
|
4,
|
||||||
|
12,
|
||||||
|
4,
|
||||||
|
12,
|
||||||
|
4,
|
||||||
|
12,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
16,
|
||||||
|
12,
|
||||||
|
16,
|
||||||
|
8,
|
||||||
|
36,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
16,
|
||||||
|
12,
|
||||||
|
16,
|
||||||
|
8,
|
||||||
|
32,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
12,
|
||||||
|
28,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
20,
|
||||||
|
28,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
20,
|
||||||
|
28,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
20,
|
||||||
|
28,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
20,
|
||||||
|
0,
|
||||||
|
8,
|
||||||
|
12,
|
||||||
|
32,
|
||||||
|
44,
|
||||||
|
0,
|
||||||
|
4,
|
||||||
|
16,
|
||||||
|
4,
|
||||||
|
16,
|
||||||
|
4,
|
||||||
|
16,
|
||||||
|
4,
|
||||||
|
16,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
8,
|
||||||
|
8,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
12,
|
||||||
|
4,
|
||||||
|
12,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
12,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
0,
|
||||||
|
4,
|
||||||
|
16,
|
||||||
|
4,
|
||||||
|
16,
|
||||||
|
4,
|
||||||
|
16,
|
||||||
|
4,
|
||||||
|
16,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
16,
|
||||||
|
28,
|
||||||
|
8,
|
||||||
|
8,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
12,
|
||||||
|
4,
|
||||||
|
12,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
4,
|
||||||
|
12,
|
||||||
|
8,
|
||||||
|
4,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
4,
|
||||||
|
12,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
#endif /* __WORDSIZE */
|
#endif /* __WORDSIZE */
|
||||||
|
|
|
@ -1074,7 +1074,7 @@ _emit_code(jit_state_t *_jit)
|
||||||
case_wr(st, _i);
|
case_wr(st, _i);
|
||||||
#if __WORDSIZE == 64
|
#if __WORDSIZE == 64
|
||||||
case_rr(st, _l);
|
case_rr(st, _l);
|
||||||
case_rw(st, _l);
|
case_wr(st, _l);
|
||||||
#endif
|
#endif
|
||||||
case_rrr(stx, _c);
|
case_rrr(stx, _c);
|
||||||
case_wrr(stx, _c);
|
case_wrr(stx, _c);
|
||||||
|
|
12
size.c
12
size.c
|
@ -55,10 +55,12 @@ main(int argc, char *argv[])
|
||||||
fprintf(fp, "#if !defined(__ARM_PCS_VFP)\n");
|
fprintf(fp, "#if !defined(__ARM_PCS_VFP)\n");
|
||||||
# endif
|
# endif
|
||||||
#elif defined(__mips__)
|
#elif defined(__mips__)
|
||||||
# if defined(_ABIN32)
|
# if __WORDSIZE == 32
|
||||||
fprintf(fp, "#if defined(_ABIN32)\n");
|
# if NEW_ABI
|
||||||
|
fprintf(fp, "#if NEW_ABI\n");
|
||||||
# else
|
# else
|
||||||
fprintf(fp, "#if !defined(_ABIN32)\n");
|
fprintf(fp, "#if !NEW_ABI\n");
|
||||||
|
# endif
|
||||||
# endif
|
# endif
|
||||||
#elif defined(__ppc__)
|
#elif defined(__ppc__)
|
||||||
fprintf(fp, "#if defined(__ppc__)\n");
|
fprintf(fp, "#if defined(__ppc__)\n");
|
||||||
|
@ -71,7 +73,9 @@ main(int argc, char *argv[])
|
||||||
#if defined(__arm__)
|
#if defined(__arm__)
|
||||||
fprintf(fp, "#undef /* __ARM_PCS_VFP */\n");
|
fprintf(fp, "#undef /* __ARM_PCS_VFP */\n");
|
||||||
#elif defined(__mips__)
|
#elif defined(__mips__)
|
||||||
fprintf(fp, "#endif /* _ABIN32 */\n");
|
# if __WORDSIZE == 32
|
||||||
|
fprintf(fp, "#endif /* NEW_ABI */\n");
|
||||||
|
# endif
|
||||||
#elif defined(__ppc__)
|
#elif defined(__ppc__)
|
||||||
fprintf(fp, "#endif /* __ppc__ */\n");
|
fprintf(fp, "#endif /* __ppc__ */\n");
|
||||||
#elif defined(__powerpc__)
|
#elif defined(__powerpc__)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue