mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
[llvm-objcopy] Add RISC-V support for -B/-O
Reviewers: jorgbrown, espindola, alexshap, jhenderson Subscribers: emaste, arichardson, fedor.sergeev, jakehehrlich, kito-cheng, shiva0217, MaskRay, rogfer01, rkruppe, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D61272 llvm-svn: 359568
This commit is contained in:
parent
eb060c9323
commit
1e69655c25
@ -18,6 +18,12 @@
|
||||
# RUN: llvm-objcopy -I binary -B powerpc:common64 %t.txt %t.powerpc_common64.o
|
||||
# RUN: llvm-readobj --file-headers %t.powerpc_common64.o | FileCheck %s --check-prefixes=CHECK,LE,PPC,64
|
||||
|
||||
# RUN: llvm-objcopy -I binary -B riscv:rv32 %t.txt %t.rv32.o
|
||||
# RUN: llvm-readobj --file-headers %t.rv32.o | FileCheck %s --check-prefixes=CHECK,LE,RISCV32,32
|
||||
|
||||
# RUN: llvm-objcopy -I binary -B riscv:rv64 %t.txt %t.rv64.o
|
||||
# RUN: llvm-readobj --file-headers %t.rv64.o | FileCheck %s --check-prefixes=CHECK,LE,RISCV64,64
|
||||
|
||||
# RUN: llvm-objcopy -I binary -B sparc %t.txt %t.sparc.o
|
||||
# RUN: llvm-readobj --file-headers %t.sparc.o | FileCheck %s --check-prefixes=CHECK,LE,SPARC,32
|
||||
|
||||
@ -25,19 +31,25 @@
|
||||
# RUN: llvm-readobj --file-headers %t.x86-64.o | FileCheck %s --check-prefixes=CHECK,LE,X86-64,64
|
||||
|
||||
# CHECK: Format:
|
||||
# AARCH64-SAME: ELF64-aarch64-little
|
||||
# ARM-SAME: ELF32-arm-little
|
||||
# I386-SAME: ELF32-i386
|
||||
# MIPS-SAME: ELF32-mips{{$}}
|
||||
# PPC-SAME: ELF64-ppc64
|
||||
# SPARC-SAME: ELF32-sparc
|
||||
# X86-64-SAME: ELF64-x86-64
|
||||
# 32-SAME: ELF32-
|
||||
# 64-SAME: ELF64-
|
||||
# AARCH64-SAME: aarch64-little
|
||||
# ARM-SAME: arm-little
|
||||
# I386-SAME: i386
|
||||
# MIPS-SAME: mips{{$}}
|
||||
# RISCV32-SAME: riscv{{$}}
|
||||
# RISCV64-SAME: riscv{{$}}
|
||||
# PPC-SAME: ppc64
|
||||
# SPARC-SAME: sparc
|
||||
# X86-64-SAME: x86-64
|
||||
|
||||
# AARCH64-NEXT: Arch: aarch64
|
||||
# ARM-NEXT: Arch: arm
|
||||
# I386-NEXT: Arch: i386
|
||||
# MIPS-NEXT: Arch: mips{{$$}}
|
||||
# PPC-NEXT: Arch: powerpc64le
|
||||
# RISCV32-NEXT: Arch: riscv32
|
||||
# RISCV64-NEXT: Arch: riscv64
|
||||
# SPARC-NEXT: Arch: sparcel
|
||||
# X86-64-NEXT: Arch: x86_64
|
||||
|
||||
@ -62,6 +74,8 @@
|
||||
# I386-NEXT: Machine: EM_386 (0x3)
|
||||
# MIPS-NEXT: Machine: EM_MIPS (0x8)
|
||||
# PPC-NEXT: Machine: EM_PPC64 (0x15)
|
||||
# RISCV32-NEXT: Machine: EM_RISCV (0xF3)
|
||||
# RISCV64-NEXT: Machine: EM_RISCV (0xF3)
|
||||
# SPARC-NEXT: Machine: EM_SPARC (0x2)
|
||||
# X86-64-NEXT: Machine: EM_X86_64 (0x3E)
|
||||
# CHECK-NEXT: Version: 1
|
||||
|
@ -53,6 +53,14 @@
|
||||
# RUN: llvm-readobj --file-headers %t.elf64_ppcle.o | FileCheck %s --check-prefixes=CHECK,LE,PPC64LE,64,SYSV
|
||||
# RUN: llvm-readobj --file-headers %t.elf64_ppcle.dwo | FileCheck %s --check-prefixes=CHECK,LE,PPC64LE,64,SYSV
|
||||
|
||||
# RUN: llvm-objcopy %t.o -O elf32-littleriscv %t.elf32_littleriscv.o --split-dwo=%t.elf32_littleriscv.dwo
|
||||
# RUN: llvm-readobj --file-headers %t.elf32_littleriscv.o | FileCheck %s --check-prefixes=CHECK,LE,RISCV32,32,SYSV
|
||||
# RUN: llvm-readobj --file-headers %t.elf32_littleriscv.dwo | FileCheck %s --check-prefixes=CHECK,LE,RISCV32,32,SYSV
|
||||
|
||||
# RUN: llvm-objcopy %t.o -O elf64-littleriscv %t.elf64_littleriscv.o --split-dwo=%t.elf64_littleriscv.dwo
|
||||
# RUN: llvm-readobj --file-headers %t.elf64_littleriscv.o | FileCheck %s --check-prefixes=CHECK,LE,RISCV64,64,SYSV
|
||||
# RUN: llvm-readobj --file-headers %t.elf64_littleriscv.dwo | FileCheck %s --check-prefixes=CHECK,LE,RISCV64,64,SYSV
|
||||
|
||||
# RUN: llvm-objcopy %t.o -O elf64-x86-64 %t.elf64_x86_64.o --split-dwo=%t.elf64_x86_64.dwo
|
||||
# RUN: llvm-readobj --file-headers %t.elf64_x86_64.o | FileCheck %s --check-prefixes=CHECK,LE,X86-64,64,SYSV
|
||||
# RUN: llvm-readobj --file-headers %t.elf64_x86_64.dwo | FileCheck %s --check-prefixes=CHECK,LE,X86-64,64,SYSV
|
||||
@ -127,6 +135,8 @@ Symbols:
|
||||
# PPC-SAME: ppc{{$}}
|
||||
# PPC64BE-SAME: ppc64{{$}}
|
||||
# PPC64LE-SAME: ppc64{{$}}
|
||||
# RISCV32-SAME: riscv{{$}}
|
||||
# RISCV64-SAME: riscv{{$}}
|
||||
# X86-64-SAME: x86-64
|
||||
# DEFAULT-SAME: unknown
|
||||
|
||||
@ -141,6 +151,8 @@ Symbols:
|
||||
# PPC-NEXT: Arch: powerpc{{$}}
|
||||
# PPC64BE-NEXT: Arch: powerpc64{{$}}
|
||||
# PPC64LE-NEXT: Arch: powerpc64le
|
||||
# RISCV32-NEXT: Arch: riscv32
|
||||
# RISCV64-NEXT: Arch: riscv64
|
||||
# X86-64-NEXT: Arch: x86_64
|
||||
# DEFAULT-NEXT: Arch: unknown
|
||||
|
||||
@ -156,14 +168,16 @@ Symbols:
|
||||
# FREEBSD: OS/ABI: FreeBSD (0x9)
|
||||
# DEFAULT: OS/ABI: Standalone (0xFF)
|
||||
|
||||
# AARCH: Machine: EM_AARCH64 (0xB7)
|
||||
# ARM: Machine: EM_ARM (0x28)
|
||||
# I386: Machine: EM_386 (0x3)
|
||||
# IAMCU: Machine: EM_IAMCU (0x6)
|
||||
# MIPS: Machine: EM_MIPS (0x8)
|
||||
# PPC: Machine: EM_PPC (0x14)
|
||||
# PPC64: Machine: EM_PPC64 (0x15)
|
||||
# X86-64: Machine: EM_X86_64 (0x3E)
|
||||
# AARCH: Machine: EM_AARCH64 (0xB7)
|
||||
# ARM: Machine: EM_ARM (0x28)
|
||||
# I386: Machine: EM_386 (0x3)
|
||||
# IAMCU: Machine: EM_IAMCU (0x6)
|
||||
# MIPS: Machine: EM_MIPS (0x8)
|
||||
# PPC: Machine: EM_PPC (0x14)
|
||||
# PPC64: Machine: EM_PPC64 (0x15)
|
||||
# RISCV32: Machine: EM_RISCV (0xF3)
|
||||
# RISCV64: Machine: EM_RISCV (0xF3)
|
||||
# X86-64: Machine: EM_X86_64 (0x3E)
|
||||
|
||||
# 32: HeaderSize: 52
|
||||
# 64: HeaderSize: 64
|
||||
|
@ -260,6 +260,8 @@ static const StringMap<MachineInfo> ArchMap{
|
||||
{"i386:x86-64", {ELF::EM_X86_64, true, true}},
|
||||
{"mips", {ELF::EM_MIPS, false, false}},
|
||||
{"powerpc:common64", {ELF::EM_PPC64, true, true}},
|
||||
{"riscv:rv32", {ELF::EM_RISCV, false, true}},
|
||||
{"riscv:rv64", {ELF::EM_RISCV, true, true}},
|
||||
{"sparc", {ELF::EM_SPARC, false, true}},
|
||||
{"x86-64", {ELF::EM_X86_64, true, true}},
|
||||
};
|
||||
@ -275,22 +277,31 @@ static Expected<const MachineInfo &> getMachineInfo(StringRef Arch) {
|
||||
// FIXME: consolidate with the bfd parsing used by lld.
|
||||
static const StringMap<MachineInfo> OutputFormatMap{
|
||||
// Name, {EMachine, 64bit, LittleEndian}
|
||||
// x86
|
||||
{"elf32-i386", {ELF::EM_386, false, true}},
|
||||
{"elf32-iamcu", {ELF::EM_IAMCU, false, true}},
|
||||
{"elf32-littlearm", {ELF::EM_ARM, false, true}},
|
||||
{"elf32-x86-64", {ELF::EM_X86_64, false, true}},
|
||||
{"elf64-x86-64", {ELF::EM_X86_64, true, true}},
|
||||
// Intel MCU
|
||||
{"elf32-iamcu", {ELF::EM_IAMCU, false, true}},
|
||||
// ARM
|
||||
{"elf32-littlearm", {ELF::EM_ARM, false, true}},
|
||||
// ARM AArch64
|
||||
{"elf64-aarch64", {ELF::EM_AARCH64, true, true}},
|
||||
{"elf64-littleaarch64", {ELF::EM_AARCH64, true, true}},
|
||||
// RISC-V
|
||||
{"elf32-littleriscv", {ELF::EM_RISCV, false, true}},
|
||||
{"elf64-littleriscv", {ELF::EM_RISCV, true, true}},
|
||||
// PowerPC
|
||||
{"elf32-powerpc", {ELF::EM_PPC, false, false}},
|
||||
{"elf32-powerpcle", {ELF::EM_PPC, false, true}},
|
||||
{"elf64-powerpc", {ELF::EM_PPC64, true, false}},
|
||||
{"elf64-powerpcle", {ELF::EM_PPC64, true, true}},
|
||||
{"elf64-x86-64", {ELF::EM_X86_64, true, true}},
|
||||
{"elf32-tradbigmips", {ELF::EM_MIPS, false, false}},
|
||||
// MIPS
|
||||
{"elf32-bigmips", {ELF::EM_MIPS, false, false}},
|
||||
{"elf32-ntradbigmips", {ELF::EM_MIPS, false, false}},
|
||||
{"elf32-tradlittlemips", {ELF::EM_MIPS, false, true}},
|
||||
{"elf32-ntradlittlemips", {ELF::EM_MIPS, false, true}},
|
||||
{"elf32-tradbigmips", {ELF::EM_MIPS, false, false}},
|
||||
{"elf32-tradlittlemips", {ELF::EM_MIPS, false, true}},
|
||||
{"elf64-tradbigmips", {ELF::EM_MIPS, true, false}},
|
||||
{"elf64-tradlittlemips", {ELF::EM_MIPS, true, true}},
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user