From 8e254166e1d23bc5a8430f83a23153782961b007 Mon Sep 17 00:00:00 2001 From: Daniel Sanders Date: Mon, 14 Jul 2014 14:02:14 +0000 Subject: [PATCH] [mips] Correct section alignments and EntrySizes for .bss, .text, .data, .reginfo, .MIPS.options, and .MIPS.abiflags Summary: .bss, .text, and .data are at least 16-byte aligned. .reginfo is 4-byte aligned and has a 24-byte EntrySize. .MIPS.abiflags has an 24-byte EntrySize. .MIPS.options is 8-byte aligned and has 1-byte EntrySize. Using a 1-byte EntrySize for .MIPS.options seems strange because the records are neither 1-byte long nor fixed-length but this matches the value that GAS emits. Differential Revision: http://reviews.llvm.org/D4487 llvm-svn: 212939 --- .../Mips/MCTargetDesc/MipsTargetStreamer.cpp | 28 ++++++++++--- llvm/test/MC/Mips/elf_reginfo.s | 10 ++++- llvm/test/MC/Mips/mips32/abiflags.s | 41 +++++++++--------- llvm/test/MC/Mips/mips32r2/abiflags.s | 41 +++++++++--------- llvm/test/MC/Mips/mips64/abiflags.s | 41 +++++++++--------- llvm/test/MC/Mips/mips64r2/abiflags.s | 41 +++++++++--------- llvm/test/MC/Mips/mips_abi_flags_xx.s | 41 +++++++++--------- llvm/test/MC/Mips/mips_abi_flags_xx_set.s | 41 +++++++++--------- llvm/test/MC/Mips/msa/abiflags.s | 41 +++++++++--------- llvm/test/MC/Mips/nooddspreg-cmdarg.s | 41 +++++++++--------- llvm/test/MC/Mips/nooddspreg.s | 41 +++++++++--------- llvm/test/MC/Mips/oddspreg.s | 49 +++++++++++----------- 12 files changed, 235 insertions(+), 221 deletions(-) diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp index fbe375b..45683e8 100644 --- a/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp +++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp @@ -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); diff --git a/llvm/test/MC/Mips/elf_reginfo.s b/llvm/test/MC/Mips/elf_reginfo.s index 5e9ddf8..b88607a 100644 --- a/llvm/test/MC/Mips/elf_reginfo.s +++ b/llvm/test/MC/Mips/elf_reginfo.s @@ -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: } diff --git a/llvm/test/MC/Mips/mips32/abiflags.s b/llvm/test/MC/Mips/mips32/abiflags.s index 3f56864..dd772c0 100644 --- a/llvm/test/MC/Mips/mips32/abiflags.s +++ b/llvm/test/MC/Mips/mips32/abiflags.s @@ -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 diff --git a/llvm/test/MC/Mips/mips32r2/abiflags.s b/llvm/test/MC/Mips/mips32r2/abiflags.s index 228ba57..e3bb15b 100644 --- a/llvm/test/MC/Mips/mips32r2/abiflags.s +++ b/llvm/test/MC/Mips/mips32r2/abiflags.s @@ -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 diff --git a/llvm/test/MC/Mips/mips64/abiflags.s b/llvm/test/MC/Mips/mips64/abiflags.s index 0b4bad0..38b7a45 100644 --- a/llvm/test/MC/Mips/mips64/abiflags.s +++ b/llvm/test/MC/Mips/mips64/abiflags.s @@ -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 diff --git a/llvm/test/MC/Mips/mips64r2/abiflags.s b/llvm/test/MC/Mips/mips64r2/abiflags.s index 82afbbb..02a91ee 100644 --- a/llvm/test/MC/Mips/mips64r2/abiflags.s +++ b/llvm/test/MC/Mips/mips64r2/abiflags.s @@ -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 diff --git a/llvm/test/MC/Mips/mips_abi_flags_xx.s b/llvm/test/MC/Mips/mips_abi_flags_xx.s index b8416fc..9192d0c 100644 --- a/llvm/test/MC/Mips/mips_abi_flags_xx.s +++ b/llvm/test/MC/Mips/mips_abi_flags_xx.s @@ -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 diff --git a/llvm/test/MC/Mips/mips_abi_flags_xx_set.s b/llvm/test/MC/Mips/mips_abi_flags_xx_set.s index 0c2d9bb..a548972 100644 --- a/llvm/test/MC/Mips/mips_abi_flags_xx_set.s +++ b/llvm/test/MC/Mips/mips_abi_flags_xx_set.s @@ -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 diff --git a/llvm/test/MC/Mips/msa/abiflags.s b/llvm/test/MC/Mips/msa/abiflags.s index 7856447..136c035 100644 --- a/llvm/test/MC/Mips/msa/abiflags.s +++ b/llvm/test/MC/Mips/msa/abiflags.s @@ -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 diff --git a/llvm/test/MC/Mips/nooddspreg-cmdarg.s b/llvm/test/MC/Mips/nooddspreg-cmdarg.s index 993c630..52b040e 100644 --- a/llvm/test/MC/Mips/nooddspreg-cmdarg.s +++ b/llvm/test/MC/Mips/nooddspreg-cmdarg.s @@ -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 diff --git a/llvm/test/MC/Mips/nooddspreg.s b/llvm/test/MC/Mips/nooddspreg.s index 10cd1ac..f268ef4 100644 --- a/llvm/test/MC/Mips/nooddspreg.s +++ b/llvm/test/MC/Mips/nooddspreg.s @@ -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 diff --git a/llvm/test/MC/Mips/oddspreg.s b/llvm/test/MC/Mips/oddspreg.s index a7b0c4b..32ba9e0 100644 --- a/llvm/test/MC/Mips/oddspreg.s +++ b/llvm/test/MC/Mips/oddspreg.s @@ -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 -- 2.7.4