mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-12 13:30:51 +00:00
Re-commit: [mips] Correct section alignments and EntrySizes for .bss, .text, .data, .reginfo, .MIPS.options, and .MIPS.abiflags
The lld tests will temporarily fail again but Simon Atanasyan will commit a fix for those shortly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@212946 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b70b4892a4
commit
52a51e197f
@ -323,13 +323,30 @@ void MipsTargetELFStreamer::finish() {
|
||||
MCAssembler &MCA = getStreamer().getAssembler();
|
||||
MCContext &Context = MCA.getContext();
|
||||
MCStreamer &OS = getStreamer();
|
||||
const MCObjectFileInfo &OFI = *Context.getObjectFileInfo();
|
||||
Triple T(STI.getTargetTriple());
|
||||
uint64_t Features = STI.getFeatureBits();
|
||||
|
||||
// .bss, .text and .data are always at least 16-byte aligned.
|
||||
MCSectionData &TextSectionData =
|
||||
MCA.getOrCreateSectionData(*OFI.getTextSection());
|
||||
MCSectionData &DataSectionData =
|
||||
MCA.getOrCreateSectionData(*OFI.getDataSection());
|
||||
MCSectionData &BSSSectionData =
|
||||
MCA.getOrCreateSectionData(*OFI.getBSSSection());
|
||||
|
||||
TextSectionData.setAlignment(std::max(16u, TextSectionData.getAlignment()));
|
||||
DataSectionData.setAlignment(std::max(16u, DataSectionData.getAlignment()));
|
||||
BSSSectionData.setAlignment(std::max(16u, BSSSectionData.getAlignment()));
|
||||
|
||||
if (T.isArch64Bit() && (Features & Mips::FeatureN64)) {
|
||||
const MCSectionELF *Sec = Context.getELFSection(
|
||||
".MIPS.options", ELF::SHT_MIPS_OPTIONS,
|
||||
ELF::SHF_ALLOC | ELF::SHF_MIPS_NOSTRIP, SectionKind::getMetadata());
|
||||
// The EntrySize value of 1 seems strange since the records are neither
|
||||
// 1-byte long nor fixed length but it matches the value GAS emits.
|
||||
const MCSectionELF *Sec =
|
||||
Context.getELFSection(".MIPS.options", ELF::SHT_MIPS_OPTIONS,
|
||||
ELF::SHF_ALLOC | ELF::SHF_MIPS_NOSTRIP,
|
||||
SectionKind::getMetadata(), 1, "");
|
||||
MCA.getOrCreateSectionData(*Sec).setAlignment(8);
|
||||
OS.SwitchSection(Sec);
|
||||
|
||||
OS.EmitIntValue(1, 1); // kind
|
||||
@ -346,7 +363,8 @@ void MipsTargetELFStreamer::finish() {
|
||||
} else {
|
||||
const MCSectionELF *Sec =
|
||||
Context.getELFSection(".reginfo", ELF::SHT_MIPS_REGINFO, ELF::SHF_ALLOC,
|
||||
SectionKind::getMetadata());
|
||||
SectionKind::getMetadata(), 24, "");
|
||||
MCA.getOrCreateSectionData(*Sec).setAlignment(4);
|
||||
OS.SwitchSection(Sec);
|
||||
|
||||
OS.EmitIntValue(0, 4); // ri_gprmask
|
||||
@ -638,7 +656,7 @@ void MipsTargetELFStreamer::emitMipsAbiFlags() {
|
||||
MCStreamer &OS = getStreamer();
|
||||
const MCSectionELF *Sec =
|
||||
Context.getELFSection(".MIPS.abiflags", ELF::SHT_MIPS_ABIFLAGS,
|
||||
ELF::SHF_ALLOC, SectionKind::getMetadata());
|
||||
ELF::SHF_ALLOC, SectionKind::getMetadata(), 24, "");
|
||||
MCSectionData &ABIShndxSD = MCA.getOrCreateSectionData(*Sec);
|
||||
ABIShndxSD.setAlignment(8);
|
||||
OS.SwitchSection(Sec);
|
||||
|
@ -14,13 +14,19 @@
|
||||
# check for .MIPS.options
|
||||
# CHECK_64: Sections [
|
||||
# CHECK_64: Section {
|
||||
# CHECK_64: Name: .MIPS.options
|
||||
# CHECK_64-LABEL: Name: .MIPS.options
|
||||
# CHECK_64-NEXT: Type: SHT_MIPS_OPTIONS
|
||||
# CHECK_64-NEXT: Flags [ (0x8000002)
|
||||
# CHECK_64: AddressAlignment: 8
|
||||
# CHECK_64: EntrySize: 1
|
||||
# CHECK_64-LABEL: }
|
||||
|
||||
# check for .reginfo
|
||||
# CHECK_32: Sections [
|
||||
# CHECK_32: Section {
|
||||
# CHECK_32: Name: .reginfo
|
||||
# CHECK_32-LABEL: Name: .reginfo
|
||||
# CHECK_32-NEXT: Type: SHT_MIPS_REGINFO
|
||||
# CHECK_32-NEXT: Flags [ (0x2)
|
||||
# CHECK_32: AddressAlignment: 4
|
||||
# CHECK_32: EntrySize: 24
|
||||
# CHECK_32-LABEL: }
|
||||
|
@ -8,27 +8,26 @@
|
||||
# CHECK-ASM: .module fp=32
|
||||
|
||||
# Checking if the Mips.abiflags were correctly emitted.
|
||||
# CHECK-OBJ: Section {
|
||||
# CHECK-OBJ: Index: 5
|
||||
# CHECK-OBJ: Name: .MIPS.abiflags (12)
|
||||
# CHECK-OBJ: Type: SHT_MIPS_ABIFLAGS (0x7000002A)
|
||||
# CHECK-OBJ: Flags [ (0x2)
|
||||
# CHECK-OBJ: SHF_ALLOC (0x2)
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: Address: 0x0
|
||||
# CHECK-OBJ: Offset: 0x50
|
||||
# CHECK-OBJ: Size: 24
|
||||
# CHECK-OBJ: Link: 0
|
||||
# CHECK-OBJ: Info: 0
|
||||
# CHECK-OBJ: AddressAlignment: 8
|
||||
# CHECK-OBJ: EntrySize: 0
|
||||
# CHECK-OBJ: Relocations [
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: SectionData (
|
||||
# CHECK-OBJ: 0000: 00002001 01010001 00000000 00000000 |.. .............|
|
||||
# CHECK-OBJ: 0010: 00000001 00000000 |........|
|
||||
# CHECK-OBJ: )
|
||||
# CHECK-OBJ: }
|
||||
# CHECK-OBJ: Section {
|
||||
# CHECK-OBJ: Index: 5
|
||||
# CHECK-OBJ-LABEL: Name: .MIPS.abiflags (12)
|
||||
# CHECK-OBJ: Type: SHT_MIPS_ABIFLAGS (0x7000002A)
|
||||
# CHECK-OBJ: Flags [ (0x2)
|
||||
# CHECK-OBJ: SHF_ALLOC (0x2)
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: Address: 0x0
|
||||
# CHECK-OBJ: Size: 24
|
||||
# CHECK-OBJ: Link: 0
|
||||
# CHECK-OBJ: Info: 0
|
||||
# CHECK-OBJ: AddressAlignment: 8
|
||||
# CHECK-OBJ: EntrySize: 24
|
||||
# CHECK-OBJ: Relocations [
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: SectionData (
|
||||
# CHECK-OBJ: 0000: 00002001 01010001 00000000 00000000 |.. .............|
|
||||
# CHECK-OBJ: 0010: 00000001 00000000 |........|
|
||||
# CHECK-OBJ: )
|
||||
# CHECK-OBJ-LABEL: }
|
||||
|
||||
.module fp=32
|
||||
|
||||
|
@ -9,27 +9,26 @@
|
||||
# CHECK-ASM: .set fp=64
|
||||
|
||||
# Checking if the Mips.abiflags were correctly emitted.
|
||||
# CHECK-OBJ: Section {
|
||||
# CHECK-OBJ: Index: 5
|
||||
# CHECK-OBJ: Name: .MIPS.abiflags (12)
|
||||
# CHECK-OBJ: Type: SHT_MIPS_ABIFLAGS (0x7000002A)
|
||||
# CHECK-OBJ: Flags [ (0x2)
|
||||
# CHECK-OBJ: SHF_ALLOC (0x2)
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: Address: 0x0
|
||||
# CHECK-OBJ: Offset: 0x50
|
||||
# CHECK-OBJ: Size: 24
|
||||
# CHECK-OBJ: Link: 0
|
||||
# CHECK-OBJ: Info: 0
|
||||
# CHECK-OBJ: AddressAlignment: 8
|
||||
# CHECK-OBJ: EntrySize: 0
|
||||
# CHECK-OBJ: Relocations [
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: SectionData (
|
||||
# CHECK-OBJ: 0000: 00002002 01010001 00000000 00000000 |.. .............|
|
||||
# CHECK-OBJ: 0010: 00000001 00000000 |........|
|
||||
# CHECK-OBJ: )
|
||||
# CHECK-OBJ: }
|
||||
# CHECK-OBJ: Section {
|
||||
# CHECK-OBJ: Index: 5
|
||||
# CHECK-OBJ-LABEL: Name: .MIPS.abiflags (12)
|
||||
# CHECK-OBJ: Type: SHT_MIPS_ABIFLAGS (0x7000002A)
|
||||
# CHECK-OBJ: Flags [ (0x2)
|
||||
# CHECK-OBJ: SHF_ALLOC (0x2)
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: Address: 0x0
|
||||
# CHECK-OBJ: Size: 24
|
||||
# CHECK-OBJ: Link: 0
|
||||
# CHECK-OBJ: Info: 0
|
||||
# CHECK-OBJ: AddressAlignment: 8
|
||||
# CHECK-OBJ: EntrySize: 24
|
||||
# CHECK-OBJ: Relocations [
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: SectionData (
|
||||
# CHECK-OBJ: 0000: 00002002 01010001 00000000 00000000 |.. .............|
|
||||
# CHECK-OBJ: 0010: 00000001 00000000 |........|
|
||||
# CHECK-OBJ: )
|
||||
# CHECK-OBJ-LABEL: }
|
||||
|
||||
.module fp=32
|
||||
.set fp=64
|
||||
|
@ -8,27 +8,26 @@
|
||||
# CHECK-ASM: .module fp=64
|
||||
|
||||
# Checking if the Mips.abiflags were correctly emitted.
|
||||
# CHECK-OBJ: Section {
|
||||
# CHECK-OBJ: Index: 5
|
||||
# CHECK-OBJ: Name: .MIPS.abiflags (12)
|
||||
# CHECK-OBJ: Type: SHT_MIPS_ABIFLAGS (0x7000002A)
|
||||
# CHECK-OBJ: Flags [ (0x2)
|
||||
# CHECK-OBJ: SHF_ALLOC (0x2)
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: Address: 0x0
|
||||
# CHECK-OBJ: Offset: 0x50
|
||||
# CHECK-OBJ: Size: 24
|
||||
# CHECK-OBJ: Link: 0
|
||||
# CHECK-OBJ: Info: 0
|
||||
# CHECK-OBJ: AddressAlignment: 8
|
||||
# CHECK-OBJ: EntrySize: 0
|
||||
# CHECK-OBJ: Relocations [
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: SectionData (
|
||||
# CHECK-OBJ: 0000: 00004001 02020001 00000000 00000000 |..@.............|
|
||||
# CHECK-OBJ: 0010: 00000001 00000000 |........|
|
||||
# CHECK-OBJ: )
|
||||
# CHECK-OBJ: }
|
||||
# CHECK-OBJ: Section {
|
||||
# CHECK-OBJ: Index: 5
|
||||
# CHECK-OBJ-LABEL: Name: .MIPS.abiflags (12)
|
||||
# CHECK-OBJ: Type: SHT_MIPS_ABIFLAGS (0x7000002A)
|
||||
# CHECK-OBJ: Flags [ (0x2)
|
||||
# CHECK-OBJ: SHF_ALLOC (0x2)
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: Address: 0x0
|
||||
# CHECK-OBJ: Size: 24
|
||||
# CHECK-OBJ: Link: 0
|
||||
# CHECK-OBJ: Info: 0
|
||||
# CHECK-OBJ: AddressAlignment: 8
|
||||
# CHECK-OBJ: EntrySize: 24
|
||||
# CHECK-OBJ: Relocations [
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: SectionData (
|
||||
# CHECK-OBJ: 0000: 00004001 02020001 00000000 00000000 |..@.............|
|
||||
# CHECK-OBJ: 0010: 00000001 00000000 |........|
|
||||
# CHECK-OBJ: )
|
||||
# CHECK-OBJ-LABEL: }
|
||||
|
||||
.module fp=64
|
||||
|
||||
|
@ -8,27 +8,26 @@
|
||||
# CHECK-ASM: .module fp=64
|
||||
|
||||
# Checking if the Mips.abiflags were correctly emitted.
|
||||
# CHECK-OBJ: Section {
|
||||
# CHECK-OBJ: Index: 5
|
||||
# CHECK-OBJ: Name: .MIPS.abiflags (12)
|
||||
# CHECK-OBJ: Type: SHT_MIPS_ABIFLAGS (0x7000002A)
|
||||
# CHECK-OBJ: Flags [ (0x2)
|
||||
# CHECK-OBJ: SHF_ALLOC (0x2)
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: Address: 0x0
|
||||
# CHECK-OBJ: Offset: 0x50
|
||||
# CHECK-OBJ: Size: 24
|
||||
# CHECK-OBJ: Link: 0
|
||||
# CHECK-OBJ: Info: 0
|
||||
# CHECK-OBJ: AddressAlignment: 8
|
||||
# CHECK-OBJ: EntrySize: 0
|
||||
# CHECK-OBJ: Relocations [
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: SectionData (
|
||||
# CHECK-OBJ: 0000: 00004002 02020001 00000000 00000000 |..@.............|
|
||||
# CHECK-OBJ: 0010: 00000001 00000000 |........|
|
||||
# CHECK-OBJ: )
|
||||
# CHECK-OBJ: }
|
||||
# CHECK-OBJ: Section {
|
||||
# CHECK-OBJ: Index: 5
|
||||
# CHECK-OBJ-LABEL: Name: .MIPS.abiflags (12)
|
||||
# CHECK-OBJ: Type: SHT_MIPS_ABIFLAGS (0x7000002A)
|
||||
# CHECK-OBJ: Flags [ (0x2)
|
||||
# CHECK-OBJ: SHF_ALLOC (0x2)
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: Address: 0x0
|
||||
# CHECK-OBJ: Size: 24
|
||||
# CHECK-OBJ: Link: 0
|
||||
# CHECK-OBJ: Info: 0
|
||||
# CHECK-OBJ: AddressAlignment: 8
|
||||
# CHECK-OBJ: EntrySize: 24
|
||||
# CHECK-OBJ: Relocations [
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: SectionData (
|
||||
# CHECK-OBJ: 0000: 00004002 02020001 00000000 00000000 |..@.............|
|
||||
# CHECK-OBJ: 0010: 00000001 00000000 |........|
|
||||
# CHECK-OBJ: )
|
||||
# CHECK-OBJ-LABEL: }
|
||||
|
||||
.module fp=64
|
||||
|
||||
|
@ -8,27 +8,26 @@
|
||||
# CHECK-ASM: .module fp=xx
|
||||
|
||||
# Checking if the Mips.abiflags were correctly emitted.
|
||||
# CHECK-OBJ: Section {
|
||||
# CHECK-OBJ: Index: 5
|
||||
# CHECK-OBJ: Name: .MIPS.abiflags (12)
|
||||
# CHECK-OBJ: Type: SHT_MIPS_ABIFLAGS (0x7000002A)
|
||||
# CHECK-OBJ: Flags [ (0x2)
|
||||
# CHECK-OBJ: SHF_ALLOC (0x2)
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: Address: 0x0
|
||||
# CHECK-OBJ: Offset: 0x50
|
||||
# CHECK-OBJ: Size: 24
|
||||
# CHECK-OBJ: Link: 0
|
||||
# CHECK-OBJ: Info: 0
|
||||
# CHECK-OBJ: AddressAlignment: 8
|
||||
# CHECK-OBJ: EntrySize: 0
|
||||
# CHECK-OBJ: Relocations [
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: SectionData (
|
||||
# CHECK-OBJ: 0000: 00002001 01010005 00000000 00000000 |.. .............|
|
||||
# CHECK-OBJ: 0010: 00000001 00000000 |........|
|
||||
# CHECK-OBJ: )
|
||||
# CHECK-OBJ: }
|
||||
# CHECK-OBJ: Section {
|
||||
# CHECK-OBJ: Index: 5
|
||||
# CHECK-OBJ-LABEL: Name: .MIPS.abiflags (12)
|
||||
# CHECK-OBJ: Type: SHT_MIPS_ABIFLAGS (0x7000002A)
|
||||
# CHECK-OBJ: Flags [ (0x2)
|
||||
# CHECK-OBJ: SHF_ALLOC (0x2)
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: Address: 0x0
|
||||
# CHECK-OBJ: Size: 24
|
||||
# CHECK-OBJ: Link: 0
|
||||
# CHECK-OBJ: Info: 0
|
||||
# CHECK-OBJ: AddressAlignment: 8
|
||||
# CHECK-OBJ: EntrySize: 24
|
||||
# CHECK-OBJ: Relocations [
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: SectionData (
|
||||
# CHECK-OBJ: 0000: 00002001 01010005 00000000 00000000 |.. .............|
|
||||
# CHECK-OBJ: 0010: 00000001 00000000 |........|
|
||||
# CHECK-OBJ: )
|
||||
# CHECK-OBJ-LABEL: }
|
||||
|
||||
.module fp=xx
|
||||
|
||||
|
@ -9,27 +9,26 @@
|
||||
# CHECK-ASM: .set fp=64
|
||||
|
||||
# Checking if the Mips.abiflags were correctly emitted.
|
||||
# CHECK-OBJ: Section {
|
||||
# CHECK-OBJ: Index: 5
|
||||
# CHECK-OBJ: Name: .MIPS.abiflags (12)
|
||||
# CHECK-OBJ: Type: SHT_MIPS_ABIFLAGS (0x7000002A)
|
||||
# CHECK-OBJ: Flags [ (0x2)
|
||||
# CHECK-OBJ: SHF_ALLOC (0x2)
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: Address: 0x0
|
||||
# CHECK-OBJ: Offset: 0x50
|
||||
# CHECK-OBJ: Size: 24
|
||||
# CHECK-OBJ: Link: 0
|
||||
# CHECK-OBJ: Info: 0
|
||||
# CHECK-OBJ: AddressAlignment: 8
|
||||
# CHECK-OBJ: EntrySize: 0
|
||||
# CHECK-OBJ: Relocations [
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: SectionData (
|
||||
# CHECK-OBJ: 0000: 00002001 01010005 00000000 00000000 |.. .............|
|
||||
# CHECK-OBJ: 0010: 00000001 00000000 |........|
|
||||
# CHECK-OBJ: )
|
||||
# CHECK-OBJ: }
|
||||
# CHECK-OBJ: Section {
|
||||
# CHECK-OBJ: Index: 5
|
||||
# CHECK-OBJ-LABEL: Name: .MIPS.abiflags (12)
|
||||
# CHECK-OBJ: Type: SHT_MIPS_ABIFLAGS (0x7000002A)
|
||||
# CHECK-OBJ: Flags [ (0x2)
|
||||
# CHECK-OBJ: SHF_ALLOC (0x2)
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: Address: 0x0
|
||||
# CHECK-OBJ: Size: 24
|
||||
# CHECK-OBJ: Link: 0
|
||||
# CHECK-OBJ: Info: 0
|
||||
# CHECK-OBJ: AddressAlignment: 8
|
||||
# CHECK-OBJ: EntrySize: 24
|
||||
# CHECK-OBJ: Relocations [
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: SectionData (
|
||||
# CHECK-OBJ: 0000: 00002001 01010005 00000000 00000000 |.. .............|
|
||||
# CHECK-OBJ: 0010: 00000001 00000000 |........|
|
||||
# CHECK-OBJ: )
|
||||
# CHECK-OBJ-LABEL: }
|
||||
|
||||
.module fp=xx
|
||||
.set fp=64
|
||||
|
@ -9,27 +9,26 @@
|
||||
# CHECK-ASM: .set fp=64
|
||||
|
||||
# Checking if the Mips.abiflags were correctly emitted.
|
||||
# CHECK-OBJ: Section {
|
||||
# CHECK-OBJ: Index: 5
|
||||
# CHECK-OBJ: Name: .MIPS.abiflags (12)
|
||||
# CHECK-OBJ: Type: SHT_MIPS_ABIFLAGS (0x7000002A)
|
||||
# CHECK-OBJ: Flags [ (0x2)
|
||||
# CHECK-OBJ: SHF_ALLOC (0x2)
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: Address: 0x0
|
||||
# CHECK-OBJ: Offset: 0x50
|
||||
# CHECK-OBJ: Size: 24
|
||||
# CHECK-OBJ: Link: 0
|
||||
# CHECK-OBJ: Info: 0
|
||||
# CHECK-OBJ: AddressAlignment: 8
|
||||
# CHECK-OBJ: EntrySize: 0
|
||||
# CHECK-OBJ: Relocations [
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: SectionData (
|
||||
# CHECK-OBJ: 0000: 00002002 01030001 00000000 00000200 |.. .............|
|
||||
# CHECK-OBJ: 0010: 00000001 00000000 |........|
|
||||
# CHECK-OBJ: )
|
||||
# CHECK-OBJ: }
|
||||
# CHECK-OBJ: Section {
|
||||
# CHECK-OBJ: Index: 5
|
||||
# CHECK-OBJ-LABEL: Name: .MIPS.abiflags (12)
|
||||
# CHECK-OBJ: Type: SHT_MIPS_ABIFLAGS (0x7000002A)
|
||||
# CHECK-OBJ: Flags [ (0x2)
|
||||
# CHECK-OBJ: SHF_ALLOC (0x2)
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: Address: 0x0
|
||||
# CHECK-OBJ: Size: 24
|
||||
# CHECK-OBJ: Link: 0
|
||||
# CHECK-OBJ: Info: 0
|
||||
# CHECK-OBJ: AddressAlignment: 8
|
||||
# CHECK-OBJ: EntrySize: 24
|
||||
# CHECK-OBJ: Relocations [
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: SectionData (
|
||||
# CHECK-OBJ: 0000: 00002002 01030001 00000000 00000200 |.. .............|
|
||||
# CHECK-OBJ: 0010: 00000001 00000000 |........|
|
||||
# CHECK-OBJ: )
|
||||
# CHECK-OBJ-LABEL: }
|
||||
|
||||
.module fp=32
|
||||
.set fp=64
|
||||
|
@ -14,27 +14,26 @@
|
||||
# CHECK-ASM-NOT: .module nooddspreg
|
||||
|
||||
# Checking if the Mips.abiflags were correctly emitted.
|
||||
# CHECK-OBJ: Section {
|
||||
# CHECK-OBJ: Index: 5
|
||||
# CHECK-OBJ: Name: .MIPS.abiflags (12)
|
||||
# CHECK-OBJ: Type: SHT_MIPS_ABIFLAGS (0x7000002A)
|
||||
# CHECK-OBJ: Flags [ (0x2)
|
||||
# CHECK-OBJ: SHF_ALLOC (0x2)
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: Address: 0x0
|
||||
# CHECK-OBJ: Offset: 0x50
|
||||
# CHECK-OBJ: Size: 24
|
||||
# CHECK-OBJ: Link: 0
|
||||
# CHECK-OBJ: Info: 0
|
||||
# CHECK-OBJ: AddressAlignment: 8
|
||||
# CHECK-OBJ: EntrySize: 0
|
||||
# CHECK-OBJ: Relocations [
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: SectionData (
|
||||
# CHECK-OBJ: 0000: 00002001 01020007 00000000 00000000 |.. .............|
|
||||
# CHECK-OBJ: 0010: 00000000 00000000 |........|
|
||||
# CHECK-OBJ: )
|
||||
# CHECK-OBJ: }
|
||||
# CHECK-OBJ: Section {
|
||||
# CHECK-OBJ: Index: 5
|
||||
# CHECK-OBJ-LABEL: Name: .MIPS.abiflags (12)
|
||||
# CHECK-OBJ: Type: SHT_MIPS_ABIFLAGS (0x7000002A)
|
||||
# CHECK-OBJ: Flags [ (0x2)
|
||||
# CHECK-OBJ: SHF_ALLOC (0x2)
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: Address: 0x0
|
||||
# CHECK-OBJ: Size: 24
|
||||
# CHECK-OBJ: Link: 0
|
||||
# CHECK-OBJ: Info: 0
|
||||
# CHECK-OBJ: AddressAlignment: 8
|
||||
# CHECK-OBJ: EntrySize: 24
|
||||
# CHECK-OBJ: Relocations [
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: SectionData (
|
||||
# CHECK-OBJ: 0000: 00002001 01020007 00000000 00000000 |.. .............|
|
||||
# CHECK-OBJ: 0010: 00000000 00000000 |........|
|
||||
# CHECK-OBJ: )
|
||||
# CHECK-OBJ-LABEL: }
|
||||
|
||||
# INVALID: ERROR: -mno-odd-spreg requires the O32 ABI
|
||||
|
||||
|
@ -14,27 +14,26 @@
|
||||
# CHECK-ASM: .module nooddspreg
|
||||
|
||||
# Checking if the Mips.abiflags were correctly emitted.
|
||||
# CHECK-OBJ: Section {
|
||||
# CHECK-OBJ: Index: 5
|
||||
# CHECK-OBJ: Name: .MIPS.abiflags (12)
|
||||
# CHECK-OBJ: Type: SHT_MIPS_ABIFLAGS (0x7000002A)
|
||||
# CHECK-OBJ: Flags [ (0x2)
|
||||
# CHECK-OBJ: SHF_ALLOC (0x2)
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: Address: 0x0
|
||||
# CHECK-OBJ: Offset: 0x50
|
||||
# CHECK-OBJ: Size: 24
|
||||
# CHECK-OBJ: Link: 0
|
||||
# CHECK-OBJ: Info: 0
|
||||
# CHECK-OBJ: AddressAlignment: 8
|
||||
# CHECK-OBJ: EntrySize: 0
|
||||
# CHECK-OBJ: Relocations [
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: SectionData (
|
||||
# CHECK-OBJ: 0000: 00002001 01020007 00000000 00000000 |.. .............|
|
||||
# CHECK-OBJ: 0010: 00000000 00000000 |........|
|
||||
# CHECK-OBJ: )
|
||||
# CHECK-OBJ: }
|
||||
# CHECK-OBJ: Section {
|
||||
# CHECK-OBJ: Index: 5
|
||||
# CHECK-OBJ-LABEL: Name: .MIPS.abiflags (12)
|
||||
# CHECK-OBJ: Type: SHT_MIPS_ABIFLAGS (0x7000002A)
|
||||
# CHECK-OBJ: Flags [ (0x2)
|
||||
# CHECK-OBJ: SHF_ALLOC (0x2)
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: Address: 0x0
|
||||
# CHECK-OBJ: Size: 24
|
||||
# CHECK-OBJ: Link: 0
|
||||
# CHECK-OBJ: Info: 0
|
||||
# CHECK-OBJ: AddressAlignment: 8
|
||||
# CHECK-OBJ: EntrySize: 24
|
||||
# CHECK-OBJ: Relocations [
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: SectionData (
|
||||
# CHECK-OBJ: 0000: 00002001 01020007 00000000 00000000 |.. .............|
|
||||
# CHECK-OBJ: 0010: 00000000 00000000 |........|
|
||||
# CHECK-OBJ: )
|
||||
# CHECK-OBJ-LABEL: }
|
||||
|
||||
# INVALID: '.module nooddspreg' requires the O32 ABI
|
||||
|
||||
|
@ -36,31 +36,30 @@
|
||||
# CHECK-ASM: .module oddspreg
|
||||
|
||||
# Checking if the Mips.abiflags were correctly emitted.
|
||||
# CHECK-OBJ-ALL: Section {
|
||||
# CHECK-OBJ-ALL: Index: 5
|
||||
# CHECK-OBJ-ALL: Name: .MIPS.abiflags ({{[0-9]+}})
|
||||
# CHECK-OBJ-ALL: Type: SHT_MIPS_ABIFLAGS (0x7000002A)
|
||||
# CHECK-OBJ-ALL: Flags [ (0x2)
|
||||
# CHECK-OBJ-ALL: SHF_ALLOC (0x2)
|
||||
# CHECK-OBJ-ALL: ]
|
||||
# CHECK-OBJ-ALL: Address: 0x0
|
||||
# CHECK-OBJ-ALL: Offset: 0x{{[0-9A-F]+}}
|
||||
# CHECK-OBJ-ALL: Size: 24
|
||||
# CHECK-OBJ-ALL: Link: 0
|
||||
# CHECK-OBJ-ALL: Info: 0
|
||||
# CHECK-OBJ-ALL: AddressAlignment: 8
|
||||
# CHECK-OBJ-ALL: EntrySize: 0
|
||||
# CHECK-OBJ-ALL: Relocations [
|
||||
# CHECK-OBJ-ALL: ]
|
||||
# CHECK-OBJ-ALL: SectionData (
|
||||
# CHECK-OBJ-O32: 0000: 00002001 01020006 00000000 00000000 |.. .............|
|
||||
# CHECK-OBJ-O32: 0010: 00000001 00000000 |........|
|
||||
# CHECK-OBJ-N32: 0000: 00004001 02020001 00000000 00000000 |..@.............|
|
||||
# CHECK-OBJ-N32: 0010: 00000001 00000000 |........|
|
||||
# CHECK-OBJ-N64: 0000: 00004001 02020001 00000000 00000000 |..@.............|
|
||||
# CHECK-OBJ-N64: 0010: 00000001 00000000 |........|
|
||||
# CHECK-OBJ-ALL: )
|
||||
# CHECK-OBJ-ALL: }
|
||||
# CHECK-OBJ-ALL: Section {
|
||||
# CHECK-OBJ-ALL: Index: 5
|
||||
# CHECK-OBJ-ALL-LABEL: Name: .MIPS.abiflags ({{[0-9]+}})
|
||||
# CHECK-OBJ-ALL: Type: SHT_MIPS_ABIFLAGS (0x7000002A)
|
||||
# CHECK-OBJ-ALL: Flags [ (0x2)
|
||||
# CHECK-OBJ-ALL: SHF_ALLOC (0x2)
|
||||
# CHECK-OBJ-ALL: ]
|
||||
# CHECK-OBJ-ALL: Address: 0x0
|
||||
# CHECK-OBJ-ALL: Size: 24
|
||||
# CHECK-OBJ-ALL: Link: 0
|
||||
# CHECK-OBJ-ALL: Info: 0
|
||||
# CHECK-OBJ-ALL: AddressAlignment: 8
|
||||
# CHECK-OBJ-ALL: EntrySize: 24
|
||||
# CHECK-OBJ-ALL: Relocations [
|
||||
# CHECK-OBJ-ALL: ]
|
||||
# CHECK-OBJ-ALL: SectionData (
|
||||
# CHECK-OBJ-O32: 0000: 00002001 01020006 00000000 00000000 |.. .............|
|
||||
# CHECK-OBJ-O32: 0010: 00000001 00000000 |........|
|
||||
# CHECK-OBJ-N32: 0000: 00004001 02020001 00000000 00000000 |..@.............|
|
||||
# CHECK-OBJ-N32: 0010: 00000001 00000000 |........|
|
||||
# CHECK-OBJ-N64: 0000: 00004001 02020001 00000000 00000000 |..@.............|
|
||||
# CHECK-OBJ-N64: 0010: 00000001 00000000 |........|
|
||||
# CHECK-OBJ-ALL: )
|
||||
# CHECK-OBJ-ALL-LABEL: }
|
||||
|
||||
.module oddspreg
|
||||
add.s $f3, $f1, $f5
|
||||
|
Loading…
Reference in New Issue
Block a user