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
@@ -4,17 +4,17 @@ Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINX 00000004 0000000000000000 0000000000000000 00000040 2**0 CONTENTS, RELOC, READONLY
1 NRV_HEAD 00000000 0000000000000000 0000000000000000 00000044 2**0 CONTENTS, READONLY
2 NRV2E 00000168 0000000000000000 0000000000000000 00000044 2**0 CONTENTS, RELOC, READONLY
3 NRV2D 00000144 0000000000000000 0000000000000000 000001ac 2**0 CONTENTS, RELOC, READONLY
4 NRV2B 00000118 0000000000000000 0000000000000000 000002f0 2**0 CONTENTS, RELOC, READONLY
5 LZMA_ELF00 00000094 0000000000000000 0000000000000000 00000408 2**0 CONTENTS, RELOC, READONLY
6 LZMA_DEC10 00000bb8 0000000000000000 0000000000000000 0000049c 2**0 CONTENTS, READONLY
7 LZMA_DEC20 00000c30 0000000000000000 0000000000000000 00001054 2**0 CONTENTS, READONLY
8 LZMA_DEC30 00000028 0000000000000000 0000000000000000 00001c84 2**0 CONTENTS, READONLY
9 NRV_TAIL 0000001c 0000000000000000 0000000000000000 00001cac 2**0 CONTENTS, READONLY
10 CFLUSH 00000024 0000000000000000 0000000000000000 00001cc8 2**0 CONTENTS, READONLY
11 ELFMAINY 00000022 0000000000000000 0000000000000000 00001cec 2**0 CONTENTS, RELOC, READONLY
12 ELFMAINZ 00000110 0000000000000000 0000000000000000 00001d10 2**2 CONTENTS, RELOC, READONLY
2 NRV2E 00000154 0000000000000000 0000000000000000 00000044 2**0 CONTENTS, RELOC, READONLY
3 NRV2D 00000144 0000000000000000 0000000000000000 00000198 2**0 CONTENTS, RELOC, READONLY
4 NRV2B 000000f8 0000000000000000 0000000000000000 000002dc 2**0 CONTENTS, RELOC, READONLY
5 LZMA_ELF00 00000094 0000000000000000 0000000000000000 000003d4 2**0 CONTENTS, RELOC, READONLY
6 LZMA_DEC30 00000028 0000000000000000 0000000000000000 00000468 2**0 CONTENTS, READONLY
7 LZMA_DEC10 0000109c 0000000000000000 0000000000000000 00000490 2**0 CONTENTS, READONLY
8 LZMA_DEC20 00000c30 0000000000000000 0000000000000000 0000152c 2**0 CONTENTS, READONLY
9 NRV_TAIL 0000001c 0000000000000000 0000000000000000 0000215c 2**0 CONTENTS, READONLY
10 CFLUSH 00000024 0000000000000000 0000000000000000 00002178 2**0 CONTENTS, READONLY
11 ELFMAINY 00000022 0000000000000000 0000000000000000 0000219c 2**0 CONTENTS, RELOC, READONLY
12 ELFMAINZ 0000010c 0000000000000000 0000000000000000 000021c0 2**2 CONTENTS, RELOC, READONLY
SYMBOL TABLE:
0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30
0000000000000000 l d NRV_TAIL 0000000000000000 NRV_TAIL
@@ -34,11 +34,11 @@ SYMBOL TABLE:
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
0000000000000000 R_PPC64_REL24 ELFMAINZ+0x0000000000000088
0000000000000000 R_PPC64_REL24 ELFMAINZ+0x0000000000000084
RELOCATION RECORDS FOR [NRV2E]:
OFFSET TYPE VALUE
00000000000000d4 R_PPC64_REL14 NRV_TAIL
00000000000000c0 R_PPC64_REL14 NRV_TAIL
RELOCATION RECORDS FOR [NRV2D]:
OFFSET TYPE VALUE
@@ -46,7 +46,7 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [NRV2B]:
OFFSET TYPE VALUE
00000000000000b8 R_PPC64_REL14 NRV_TAIL
0000000000000098 R_PPC64_REL14 NRV_TAIL
RELOCATION RECORDS FOR [LZMA_ELF00]:
OFFSET TYPE VALUE
@@ -59,4 +59,4 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
0000000000000058 R_PPC64_REL14 ELFMAINY
000000000000010c R_PPC64_ADDR32 O_BINFO
0000000000000108 R_PPC64_ADDR32 O_BINFO