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_POWERPC64LE_DARWIN_MACHO_FOLD_SIZE 6504
#define STUB_POWERPC64LE_DARWIN_MACHO_FOLD_ADLER32 0x5a4ec4ac
#define STUB_POWERPC64LE_DARWIN_MACHO_FOLD_CRC32 0x2bc0f08d
#define STUB_POWERPC64LE_DARWIN_MACHO_FOLD_ADLER32 0x4cfac192
#define STUB_POWERPC64LE_DARWIN_MACHO_FOLD_CRC32 0xbbb133f9
unsigned char stub_powerpc64le_darwin_macho_fold[6504] = {
/* 0x0000 */ 105, 0, 0, 72,208, 0, 6, 40, 32, 0,194, 76,191,240,132, 84,
/* 0x0010 */ 32, 0,194, 77, 16, 0, 0, 60, 64, 0, 4,124, 8, 0,128, 65,
/* 0x0020 */ 120, 3, 4,124, 32, 1,165, 56,120, 27,103,124,252,255, 99, 56,
/* 0x0030 */ 166, 3,137,124, 28, 0, 0, 72,186, 2, 75, 84, 80, 88, 99,125,
/* 0x0040 */ 20, 58,107,125,186, 1, 98, 81, 0, 0, 67,144, 32, 0, 64, 79,
/* 0x0050 */ 4, 0, 67,132,190, 85, 75, 84, 64, 40, 11,124,220,255,194, 65,
/* 0x0030 */ 166, 3,137,124, 28, 0, 0, 72,186, 2, 96, 85, 80, 0, 3,124,
/* 0x0040 */ 20, 58, 0,124,186, 1, 11, 80, 0, 0, 99,145, 32, 0, 64, 79,
/* 0x0050 */ 4, 0, 99,133,190, 85, 96, 85, 64, 40, 0,124,220,255,194, 65,
/* 0x0060 */ 240,255, 32, 67, 32, 0,128, 78, 24, 0, 33, 56, 0, 0, 32, 57,
/* 0x0070 */ 252,255, 33,149,120, 11, 41,124,166, 2, 8,125,248,255,159,128,
/* 0x0080 */ 80,248,100,124, 24, 0,195,128, 0, 8, 6, 40, 8, 0,129, 65,
/* 0x0090 */ 0, 8,192, 56,120, 11, 61,124, 80, 8, 38,124,120, 11, 37,124,
/* 0x00a0 */ 232,255, 33, 56,120,251,231,127,105, 6, 0, 72,120,235,161,127,
/* 0x00b0 */ 0, 0, 67,128,166, 3, 73,124,136, 0, 67,128, 32,241, 79,124,
/* 0x00c0 */ 140, 0, 67,128,166, 3, 65,124,144, 0, 67,128,166, 3, 72,124,
/* 0x00b0 */ 0, 0, 3,128,166, 3, 9,124,136, 0, 3,128, 32,241, 15,124,
/* 0x00c0 */ 140, 0, 3,128,166, 3, 1,124,144, 0, 3,128,166, 3, 8,124,
/* 0x00d0 */ 24, 0,131,184, 8, 0, 3,128, 16, 0, 67,128, 20, 0, 99,128,
/* 0x00e0 */ 32, 4,128, 78,120, 51,199,124, 0, 0,192, 56,153, 0, 0, 56,
/* 0x00f0 */ 16, 0, 0, 72,120, 67, 9,125, 0, 0, 0, 57,197, 0, 0, 56,