forked from OSchip/llvm-project
[mips] Set pointer size to 4 bytes for N32 ABI
CodePointerSize and CalleeSaveStackSlotSize values are used in DWARF generation. In case of MIPS it's incorrect to check for Triple::isMIPS64() only this function returns true for N32 ABI too. Now we do not have a method to recognize N32 if it's specified by a command line option and is not a part of a target triple. So we check for Triple::GNUABIN32 only. It's better than nothing. Differential revision: https://reviews.llvm.org/D52874 llvm-svn: 344039
This commit is contained in:
parent
d1d2e45218
commit
d465318c6d
|
@ -21,9 +21,8 @@ void MipsMCAsmInfo::anchor() { }
|
||||||
MipsMCAsmInfo::MipsMCAsmInfo(const Triple &TheTriple) {
|
MipsMCAsmInfo::MipsMCAsmInfo(const Triple &TheTriple) {
|
||||||
IsLittleEndian = TheTriple.isLittleEndian();
|
IsLittleEndian = TheTriple.isLittleEndian();
|
||||||
|
|
||||||
if (TheTriple.isMIPS64()) {
|
if (TheTriple.isMIPS64() && TheTriple.getEnvironment() != Triple::GNUABIN32)
|
||||||
CodePointerSize = CalleeSaveStackSlotSize = 8;
|
CodePointerSize = CalleeSaveStackSlotSize = 8;
|
||||||
}
|
|
||||||
|
|
||||||
// FIXME: This condition isn't quite right but it's the best we can do until
|
// FIXME: This condition isn't quite right but it's the best we can do until
|
||||||
// this object can identify the ABI. It will misbehave when using O32
|
// this object can identify the ABI. It will misbehave when using O32
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
# RUN: llvm-mc -filetype=obj -triple mips--gnu -g %s \
|
||||||
|
# RUN: | llvm-dwarfdump -debug-info - | FileCheck --check-prefix=O32 %s
|
||||||
|
# RUN: llvm-mc -filetype=obj -triple mips64--gnuabin32 -g %s \
|
||||||
|
# RUN: | llvm-dwarfdump -debug-info - | FileCheck --check-prefix=N32 %s
|
||||||
|
# RUN: llvm-mc -filetype=obj -triple mips64--gnuabi64 -g %s \
|
||||||
|
# RUN: | llvm-dwarfdump -debug-info - | FileCheck --check-prefix=N64 %s
|
||||||
|
|
||||||
|
# O32: addr_size = 0x04
|
||||||
|
# N32: addr_size = 0x04
|
||||||
|
# N64: addr_size = 0x08
|
||||||
|
|
||||||
|
foo:
|
||||||
|
nop
|
Loading…
Reference in New Issue