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
+23 -23
View File
@@ -9,36 +9,36 @@ Linker script and memory map
TARGET(elf64-powerpcle)
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0x80c
.text 0x00000000001000bc 0x810
*(.text)
.text 0x00000000001000bc 0x1ac tmp/powerpc64le-linux.elf-fold.o
0x000000000010021c mmap
0x0000000000100230 exit
0x0000000000100238 read
0x0000000000100240 open
0x0000000000100248 close
0x0000000000100250 mprotect
0x0000000000100258 munmap
0x0000000000100260 brk
.text 0x0000000000100268 0x660 tmp/powerpc64le-linux.elf-main.o
.text 0x00000000001000bc 0x1b0 tmp/powerpc64le-linux.elf-fold.o
0x0000000000100220 exit
0x0000000000100228 brk
0x0000000000100230 close
0x0000000000100238 open
0x0000000000100240 munmap
0x0000000000100248 mprotect
0x0000000000100250 read
0x0000000000100258 mmap
.text 0x000000000010026c 0x660 tmp/powerpc64le-linux.elf-main.o
*(.data)
.data 0x00000000001008c8 0x0 tmp/powerpc64le-linux.elf-fold.o
.data 0x00000000001008c8 0x0 tmp/powerpc64le-linux.elf-main.o
.data 0x00000000001008cc 0x0 tmp/powerpc64le-linux.elf-fold.o
.data 0x00000000001008cc 0x0 tmp/powerpc64le-linux.elf-main.o
.sfpr 0x00000000001008c8 0xa4
.sfpr 0x00000000001008c8 0xa4 linker stubs
0x00000000001008c8 _savegpr0_14
0x00000000001008f8 _savegpr0_26
0x0000000000100900 _savegpr0_28
0x0000000000100918 _restgpr0_14
0x0000000000100948 _restgpr0_26
0x0000000000100950 _restgpr0_28
.sfpr 0x00000000001008cc 0xa4
.sfpr 0x00000000001008cc 0xa4 linker stubs
0x00000000001008cc _savegpr0_14
0x00000000001008fc _savegpr0_26
0x0000000000100904 _savegpr0_28
0x000000000010091c _restgpr0_14
0x000000000010094c _restgpr0_26
0x0000000000100954 _restgpr0_28
.glink 0x0000000000100970 0x0
.glink 0x0000000000100970 0x0 linker stubs
.eh_frame 0x000000000010096c 0x0
.eh_frame 0x000000000010096c 0x0 linker stubs
.eh_frame 0x0000000000100970 0x0
.eh_frame 0x0000000000100970 0x0 linker stubs
.rela.dyn 0x0000000000100970 0x0
.rela.iplt 0x0000000000100970 0x0 linker stubs