Revamp powerpc{,64le,64}.

Fix 64-bit stack frame (8*8 bytes for spilling a0-a7).  Avoid using r2 (t0).
Prepare for -pie executables.  Prepare for unified strategy in stubs.

	modified:   p_lx_elf.cpp
	modified:   stub/src/amd64-linux.elf-main.c
	modified:   stub/src/arch/powerpc/32/bxx.S
	modified:   stub/src/arch/powerpc/32/lzma_d.S
	modified:   stub/src/arch/powerpc/32/nrv2b_d.S
	modified:   stub/src/arch/powerpc/32/nrv2d_d.S
	modified:   stub/src/arch/powerpc/32/nrv2e_d.S
	modified:   stub/src/arch/powerpc/32/ppc_regs.h
	new file:   stub/src/arch/powerpc/64/Makefile
	new file:   stub/src/arch/powerpc/64/Makefile.extra
	new file:   stub/src/arch/powerpc/64/lzma_d.S
	new file:   stub/src/arch/powerpc/64/lzma_d_cf.S
	new file:   stub/src/arch/powerpc/64/lzma_d_cs.S
	modified:   stub/src/arch/powerpc/64le/bxx.S
	copied:     stub/src/arch/powerpc/64le/lzma_d.S -> stub/src/arch/powerpc/64le/lzma_d-common.S
	modified:   stub/src/arch/powerpc/64le/lzma_d.S
	modified:   stub/src/arch/powerpc/64le/lzma_d_cs.S
	modified:   stub/src/arch/powerpc/64le/nrv2b_d.S
	modified:   stub/src/arch/powerpc/64le/nrv2d_d.S
	modified:   stub/src/arch/powerpc/64le/nrv2e_d.S
	modified:   stub/src/arch/powerpc/64le/ppc_regs.h
	modified:   stub/src/i386-darwin.macho-entry.S
	modified:   stub/src/powerpc-darwin.dylib-entry.S
	modified:   stub/src/powerpc-darwin.macho-entry.S
	modified:   stub/src/powerpc-darwin.macho-fold.S
	modified:   stub/src/powerpc-linux.elf-entry.S
	modified:   stub/src/powerpc-linux.elf-fold.S
	modified:   stub/src/powerpc-linux.elf-main.c
	modified:   stub/src/powerpc64-darwin.dylib-entry.S
	modified:   stub/src/powerpc64-darwin.macho-entry.S
	modified:   stub/src/powerpc64-darwin.macho-fold.S
	modified:   stub/src/powerpc64-darwin.macho-main.c
	modified:   stub/src/powerpc64-linux.elf-main.c
	modified:   stub/src/powerpc64-savegpr0.S
	modified:   stub/src/powerpc64le-darwin.dylib-entry.S
	modified:   stub/src/powerpc64le-darwin.macho-entry.S
	modified:   stub/src/powerpc64le-darwin.macho-fold.S
	modified:   stub/src/powerpc64le-linux.elf-entry.S
	modified:   stub/src/powerpc64le-linux.elf-fold.S

	modified:   stub/i386-darwin.macho-entry.h
	modified:   stub/powerpc-darwin.dylib-entry.h
	modified:   stub/powerpc-darwin.macho-entry.h
	modified:   stub/powerpc-darwin.macho-fold.h
	modified:   stub/powerpc-linux.elf-entry.h
	modified:   stub/powerpc-linux.elf-fold.h
	modified:   stub/powerpc-linux.kernel.vmlinux.h
	modified:   stub/powerpc64-linux.elf-entry.h
	modified:   stub/powerpc64-linux.elf-fold.h
	modified:   stub/powerpc64le-darwin.dylib-entry.h
	modified:   stub/powerpc64le-darwin.macho-entry.h
	modified:   stub/powerpc64le-darwin.macho-fold.h
	modified:   stub/powerpc64le-linux.elf-entry.h
	modified:   stub/powerpc64le-linux.elf-fold.h
	modified:   stub/powerpc64le-linux.kernel.vmlinux.h
	modified:   stub/tmp/i386-darwin.macho-entry.bin.dump
	modified:   stub/tmp/powerpc-darwin.dylib-entry.bin.dump
	modified:   stub/tmp/powerpc-darwin.macho-entry.bin.dump
	modified:   stub/tmp/powerpc-linux.elf-entry.bin.dump
	modified:   stub/tmp/powerpc-linux.elf-fold.map
	modified:   stub/tmp/powerpc64le-darwin.dylib-entry.bin.dump
	modified:   stub/tmp/powerpc64le-darwin.macho-entry.bin.dump
	modified:   stub/tmp/powerpc64le-linux.elf-entry.bin.dump
	modified:   stub/tmp/powerpc64le-linux.elf-fold.map
	modified:   stub/tmp/powerpc64le-linux.kernel.vmlinux.bin.dump
This commit is contained in:
John Reiser
2017-04-19 19:25:05 -07:00
parent 4e05f087f9
commit c4a921283a
64 changed files with 8739 additions and 7226 deletions
+7 -7
View File
@@ -32,23 +32,23 @@
#define STUB_POWERPC_DARWIN_MACHO_FOLD_SIZE 2564
#define STUB_POWERPC_DARWIN_MACHO_FOLD_ADLER32 0x4c75bfa4
#define STUB_POWERPC_DARWIN_MACHO_FOLD_CRC32 0xf7d60c1b
#define STUB_POWERPC_DARWIN_MACHO_FOLD_ADLER32 0xfba2bc8a
#define STUB_POWERPC_DARWIN_MACHO_FOLD_CRC32 0xbb9b4325
unsigned char stub_powerpc_darwin_macho_fold[2564] = {
/* 0x0000 */ 72, 0, 0,105, 40, 6, 0,208, 76,130, 0, 32, 84,132,240,191,
/* 0x0010 */ 77,130, 0, 32, 60, 0, 0, 16,124, 4, 0, 64, 65,128, 0, 8,
/* 0x0020 */ 124, 4, 3,120, 56,165, 1, 32,124,103, 27,120, 56, 99,255,252,
/* 0x0030 */ 124,137, 3,166, 72, 0, 0, 28, 84, 75, 2,186,125, 99, 88, 80,
/* 0x0040 */ 125,107, 58, 20, 81, 98, 1,186,144, 67, 0, 0, 78, 64, 0, 32,
/* 0x0050 */ 132, 67, 0, 4, 84, 75, 85,190,124, 11, 40, 64, 65,162,255,220,
/* 0x0030 */ 124,137, 3,166, 72, 0, 0, 28, 85, 96, 2,186,124, 3, 0, 80,
/* 0x0040 */ 124, 0, 58, 20, 80, 11, 1,186,145, 99, 0, 0, 78, 64, 0, 32,
/* 0x0050 */ 133, 99, 0, 4, 85, 96, 85,190,124, 0, 40, 64, 65,162,255,220,
/* 0x0060 */ 66, 0,255,240, 78,128, 0, 32, 56, 33, 0, 24, 57, 32, 0, 0,
/* 0x0070 */ 149, 33,255,252,124, 41, 11,120,125, 8, 2,166,128,159,255,248,
/* 0x0080 */ 124,100,248, 80,128,195, 0, 24, 40, 6, 8, 0, 65,129, 0, 8,
/* 0x0090 */ 56,192, 8, 0,124, 61, 11,120,124, 38, 8, 80,124, 37, 11,120,
/* 0x00a0 */ 56, 33,255,232,127,231,251,120, 72, 0, 6,253,127,161,235,120,
/* 0x00b0 */ 128, 67, 0, 0,124, 73, 3,166,128, 67, 0,136,124, 79,241, 32,
/* 0x00c0 */ 128, 67, 0,140,124, 65, 3,166,128, 67, 0,144,124, 72, 3,166,
/* 0x00b0 */ 128, 3, 0, 0,124, 9, 3,166,128, 3, 0,136,124, 15,241, 32,
/* 0x00c0 */ 128, 3, 0,140,124, 1, 3,166,128, 3, 0,144,124, 8, 3,166,
/* 0x00d0 */ 184,131, 0, 24,128, 3, 0, 8,128, 67, 0, 16,128, 99, 0, 20,
/* 0x00e0 */ 78,128, 4, 32,124,199, 51,120, 56,192, 0, 0, 56, 0, 0,153,
/* 0x00f0 */ 72, 0, 0, 16,125, 9, 67,120, 57, 0, 0, 0, 56, 0, 0,197,