mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-28 14:10:41 +00:00
[mips] Implemented the .hword directive.
Summary: In order to pass the tests, this required marking R_MIPS_16 relocations as needing to point to the symbol and not the section. Reviewers: vkalintiris, dsanders Subscribers: dsanders, llvm-commits Differential Revision: http://reviews.llvm.org/D17200 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260896 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
5e17ebd723
commit
4f17f73d87
@ -6216,6 +6216,11 @@ bool MipsAsmParser::ParseDirective(AsmToken DirectiveID) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (IDVal == ".hword") {
|
||||
parseDataDirective(2, DirectiveID.getLoc());
|
||||
return false;
|
||||
}
|
||||
|
||||
if (IDVal == ".option")
|
||||
return parseDirectiveOption();
|
||||
|
||||
|
@ -412,6 +412,7 @@ bool MipsELFObjectWriter::needsRelocateWithSymbol(const MCSymbol &Sym,
|
||||
case ELF::R_MICROMIPS_LO16:
|
||||
return true;
|
||||
|
||||
case ELF::R_MIPS_16:
|
||||
case ELF::R_MIPS_32:
|
||||
if (cast<MCSymbolELF>(Sym).getOther() & ELF::STO_MIPS_MICROMIPS)
|
||||
return true;
|
||||
|
@ -7,14 +7,16 @@
|
||||
|
||||
# CHECK-ASM: .4byte 3735929054
|
||||
# CHECK-ASM: .8byte -2401050962867405073
|
||||
# CHECK-ASM: .2byte 49374
|
||||
# CHECK-ASM: .4byte label
|
||||
# CHECK-ASM: .8byte label
|
||||
# CHECK-ASM: .2byte label
|
||||
|
||||
# Checking if the data and reloations were correctly emitted
|
||||
# CHECK-OBJ: Section {
|
||||
# CHECK-OBJ: Name: .data
|
||||
# CHECK-OBJ: SectionData (
|
||||
# CHECK-OBJ: 0000: DEADC0DE DEADC0DE DEADBEEF 00000000
|
||||
# CHECK-OBJ: 0000: DEADC0DE DEADC0DE DEADBEEF C0DE0000
|
||||
# CHECK-OBJ: 0010: 00000000 00000000
|
||||
# CHECK-OBJ: )
|
||||
# CHECK-OBJ: }
|
||||
@ -22,8 +24,9 @@
|
||||
# CHECK-OBJ: Section {
|
||||
# CHECK-OBJ: Name: .rel.data
|
||||
# CHECK-OBJ: Relocations [
|
||||
# CHECK-OBJ: 0xC R_MIPS_32 .data 0x0
|
||||
# CHECK-OBJ: 0x10 R_MIPS_64 .data 0x0
|
||||
# CHECK-OBJ: 0xE R_MIPS_32 .data 0x0
|
||||
# CHECK-OBJ: 0x12 R_MIPS_64 .data 0x0
|
||||
# CHECK-OBJ: 0x1A R_MIPS_16 .data 0x0
|
||||
# CHECK-OBJ: ]
|
||||
# CHECK-OBJ: }
|
||||
|
||||
@ -31,6 +34,8 @@
|
||||
label:
|
||||
.word 0xdeadc0de
|
||||
.dword 0xdeadc0dedeadbeef
|
||||
.hword 0xc0de
|
||||
|
||||
.word label
|
||||
.dword label
|
||||
.hword label
|
||||
|
Loading…
Reference in New Issue
Block a user