1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-06 15:40:29 +02:00
guile/lib/jit_mips-sz.c
pcpa afae5407f6 Implement the jit_align interface
* lib/jit_aarch64-cpu.c, lib/jit_alpha-cpu.c, lib/jit_arm-cpu.c,
	lib/jit_hppa-cpu.c, lib/jit_mips-cpu.c, lib/jit_ppc-cpu.c,
	lib/jit_sparc-cpu.c: Implement or correct the internal
	nop(count) call that receives an argument that tells the
	modulo bytes to align the code for the next instruction.

	* include/lightning.h, lib/lightning.c, lib/jit_aarch64.c,
	lib/jit_alpha.c, lib/jit_arm.c, lib/jit_hppa.c, lib/jit_ia64.c,
	lib/jit_mips.c, lib/jit_ppc.c, lib/jit_s390x.c, lib/jit_sparc.c,
	lib/jit_x86.c: Implement the new jit_align() call that receive
	an argument, that tells the modulo, in bytes, to align the
	next instruction. In most backends the only value that makes
	a difference is a value that matches sizeof(void*), as all
	other values usually are already automatically aligned in
	labels, but not guaranteed to be aligned at word size bytes.

	* check/align.ok, check/align.tst: New files, implementing
	a simple test for the new jit_align() interface.

	* check/Makefile.am, check/lightning.c, lib/jit_aarch64-sz.c,
	lib/jit_alpha-sz.c, lib/jit_arm-sz.c, lib/jit_hppa-sz.c,
	lib/jit_ia64-sz.c, lib/jit_mips-sz.c, lib/jit_ppc-sz.c,
	lib/jit_print.c, lib/jit_s390x-sz.c, lib/jit_sparc-sz.c,
	lib/jit_x86-sz.c: Update for the new jit_code_align code and
	the jit_align() interface.
2014-10-14 17:05:25 -03:00

1057 lines
8 KiB
C

#if __WORDSIZE == 32
#if NEW_ABI
#define JIT_INSTR_MAX 44
0,
0,
0,
0,
0,
0,
0,
0,
44,
0,
4,
12,
12,
20,
28,
28,
4,
12,
12,
20,
28,
28,
8,
16,
12,
20,
12,
20,
8,
16,
8,
16,
12,
16,
12,
16,
8,
16,
8,
16,
4,
12,
4,
12,
4,
12,
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,
8,
8,
4,
8,
4,
0,
0,
4,
4,
12,
4,
12,
4,
12,
4,
12,
4,
12,
0,
0,
0,
0,
8,
4,
8,
4,
8,
4,
8,
4,
8,
4,
0,
0,
0,
0,
4,
12,
4,
12,
4,
12,
0,
0,
8,
4,
8,
4,
8,
4,
0,
0,
12,
12,
12,
12,
12,
16,
12,
16,
8,
16,
12,
12,
12,
12,
12,
16,
12,
16,
8,
16,
12,
12,
12,
12,
28,
28,
16,
20,
28,
28,
16,
20,
28,
28,
16,
20,
28,
28,
16,
20,
0,
8,
12,
16,
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,
0,
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,
0,
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 /* NEW_ABI */
#endif /* __WORDSIZE */
#if __WORDSIZE == 32
#if !NEW_ABI
#define JIT_INSTR_MAX 96
0,
0,
0,
0,
0,
0,
0,
0,
96,
0,
4,
12,
12,
20,
28,
28,
4,
12,
12,
20,
28,
28,
8,
16,
12,
20,
12,
20,
8,
16,
8,
16,
12,
16,
12,
16,
8,
16,
8,
16,
4,
12,
4,
12,
4,
12,
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,
8,
8,
4,
8,
4,
0,
0,
56,
4,
12,
4,
12,
4,
12,
4,
12,
4,
12,
0,
0,
0,
0,
8,
4,
8,
4,
8,
4,
8,
4,
8,
4,
0,
0,
0,
0,
4,
12,
4,
12,
4,
12,
0,
0,
8,
4,
8,
4,
8,
4,
0,
0,
12,
12,
12,
12,
12,
16,
12,
16,
8,
16,
12,
12,
12,
12,
12,
16,
12,
16,
8,
16,
12,
12,
12,
12,
28,
28,
16,
20,
28,
28,
16,
20,
28,
28,
16,
20,
28,
28,
16,
20,
0,
8,
12,
16,
96,
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,
0,
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,
20,
4,
20,
4,
20,
4,
20,
4,
4,
4,
16,
40,
16,
40,
16,
40,
16,
40,
16,
40,
16,
40,
16,
40,
16,
40,
16,
40,
16,
40,
16,
40,
16,
40,
16,
40,
16,
40,
8,
0,
8,
4,
4,
24,
8,
16,
12,
8,
8,
16,
12,
8,
12,
28,
12,
28,
12,
28,
12,
28,
12,
28,
12,
36,
12,
36,
12,
36,
12,
36,
12,
36,
12,
36,
12,
28,
12,
28,
12,
36,
4,
8,
0,
0,
4,
8,
8,
0,
0,
0,
0,
#endif /* NEW_ABI */
#endif /* __WORDSIZE */
#if __WORDSIZE == 64
#define JIT_INSTR_MAX 44
0,
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 */