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

ALPHA: Implement lightning Alpha port.

* include/lightning/jit_alpha.h, lib/jit_alpha-cpu.c,
        lib/jit_alpha-fpu.c, lib/jit_alpha-sz.c, lib/jit_alpha.c:
	New files implementing a lightning Alpha port. Thanks
	to Trent Nelson and snakebit.net staff for providing access
	to an Alpha system.

        * check/float.tst, check/lightning.c, configure.ac,
        include/lightning.h, include/lightning/Makefile.am,
        include/lightning/jit_private.h, lib/Makefile.am,
        lib/jit_disasm.c, lib/jit_size.c, lib/lightning.c:
	Minor changes to adapt for the new Alpha port.
This commit is contained in:
pcpa 2014-08-10 11:48:35 -03:00
parent 53dd28d682
commit 05b88d9d45
16 changed files with 5979 additions and 12 deletions

View file

@ -36,6 +36,10 @@ EXTRA_DIST = \
jit_aarch64-cpu.c \
jit_aarch64-fpu.c \
jit_aarch64-sz.c \
jit_alpha.c \
jit_alpha-cpu.c \
jit_alpha-fpu.c \
jit_alpha-sz.c \
jit_arm.c \
jit_arm-cpu.c \
jit_arm-swf.c \

2641
lib/jit_alpha-cpu.c Normal file

File diff suppressed because it is too large Load diff

1538
lib/jit_alpha-fpu.c Normal file

File diff suppressed because it is too large Load diff

350
lib/jit_alpha-sz.c Normal file
View file

@ -0,0 +1,350 @@
#if __WORDSIZE == 64
#define JIT_INSTR_MAX 76
0,
0,
0,
0,
0,
0,
0,
76,
0,
4,
32,
12,
40,
28,
28,
4,
32,
12,
40,
28,
28,
4,
32,
44,
56,
12,
32,
48,
72,
48,
72,
56,
56,
56,
56,
48,
72,
48,
72,
4,
32,
4,
32,
4,
32,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
8,
4,
8,
4,
4,
4,
4,
4,
8,
4,
8,
4,
8,
4,
8,
8,
12,
4,
32,
8,
8,
8,
8,
8,
8,
36,
12,
40,
4,
32,
12,
40,
4,
32,
4,
32,
12,
40,
4,
32,
16,
12,
8,
4,
16,
12,
8,
4,
8,
4,
16,
12,
8,
4,
4,
32,
4,
32,
4,
32,
4,
32,
8,
4,
8,
4,
8,
4,
8,
4,
8,
8,
8,
12,
8,
12,
8,
12,
8,
40,
8,
12,
8,
12,
8,
12,
8,
12,
8,
36,
8,
8,
8,
8,
28,
32,
16,
16,
28,
32,
16,
16,
28,
32,
16,
16,
28,
32,
16,
16,
0,
36,
8,
36,
68,
0,
8,
32,
8,
32,
8,
32,
8,
32,
4,
4,
8,
32,
56,
32,
56,
32,
56,
32,
56,
32,
56,
32,
56,
32,
56,
32,
56,
32,
56,
32,
56,
32,
56,
32,
56,
20,
44,
20,
44,
16,
16,
12,
4,
4,
24,
4,
32,
8,
4,
4,
32,
8,
4,
24,
48,
24,
48,
24,
48,
24,
48,
24,
48,
28,
52,
28,
52,
28,
52,
28,
52,
28,
52,
28,
52,
28,
52,
12,
36,
12,
36,
0,
8,
28,
8,
28,
8,
28,
8,
28,
4,
4,
8,
32,
52,
32,
52,
32,
52,
32,
52,
32,
52,
32,
52,
32,
52,
32,
52,
32,
52,
32,
52,
32,
52,
32,
52,
20,
40,
20,
40,
16,
16,
12,
4,
4,
20,
4,
32,
8,
4,
4,
32,
8,
4,
24,
44,
24,
44,
24,
44,
24,
44,
24,
44,
28,
48,
28,
48,
28,
48,
28,
48,
28,
48,
28,
48,
28,
48,
12,
32,
12,
32,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
#endif /* __WORDSIZE */

1253
lib/jit_alpha.c Normal file

File diff suppressed because it is too large Load diff

View file

@ -100,6 +100,10 @@ jit_init_debug(char *progname)
disasm_info.mach = bfd_mach_s390_64;
disasm_info.endian = disasm_info.display_endian = BFD_ENDIAN_BIG;
disasm_info.disassembler_options = "zarch";
# endif
# if defined(__alpha__)
disasm_info.arch = bfd_arch_alpha;
disasm_info.mach = bfd_mach_alpha_ev6;
# endif
disasm_info.print_address_func = disasm_print_address;
@ -117,7 +121,13 @@ jit_init_debug(char *progname)
if (bfd_get_file_flags(disasm_bfd) & DYNAMIC) {
dyn_storage = bfd_get_dynamic_symtab_upper_bound(disasm_bfd);
# if defined(__alpha__)
/* XXX */
if (dyn_storage < 0)
dyn_storage = 0;
# else
assert(dyn_storage >= 0);
# endif
}
else
dyn_storage = 0;

View file

@ -48,6 +48,8 @@ static jit_int16_t _szs[jit_code_x86_retval_d + 1] = {
# include "jit_aarch64-sz.c"
# elif defined(__s390x__)
# include "jit_s390x-sz.c"
# elif defined(__alpha__)
# include "jit_alpha-sz.c"
# endif
#endif
};

View file

@ -3113,4 +3113,6 @@ _patch_register(jit_state_t *_jit, jit_node_t *node, jit_node_t *link,
# include "jit_aarch64.c"
#elif defined(__s390x__)
# include "jit_s390x.c"
#elif defined(__alpha__)
# include "jit_alpha.c"
#endif