diff options
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r-- | llvm/lib/Target/Mips/MipsCallLowering.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/Target/Mips/MipsLegalizerInfo.cpp | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Target/Mips/MipsCallLowering.cpp b/llvm/lib/Target/Mips/MipsCallLowering.cpp index cb3c5ef752d..e82f62260b3 100644 --- a/llvm/lib/Target/Mips/MipsCallLowering.cpp +++ b/llvm/lib/Target/Mips/MipsCallLowering.cpp @@ -186,6 +186,8 @@ bool OutgoingValueHandler::handle(ArrayRef<CCValAssign> ArgLocs, static bool isSupportedType(Type *T) { if (T->isIntegerTy() && T->getScalarSizeInBits() == 32) return true; + if (T->isPointerTy()) + return true; return false; } diff --git a/llvm/lib/Target/Mips/MipsLegalizerInfo.cpp b/llvm/lib/Target/Mips/MipsLegalizerInfo.cpp index 3e2fcd6122a..da6f9dabdaa 100644 --- a/llvm/lib/Target/Mips/MipsLegalizerInfo.cpp +++ b/llvm/lib/Target/Mips/MipsLegalizerInfo.cpp @@ -25,7 +25,7 @@ MipsLegalizerInfo::MipsLegalizerInfo(const MipsSubtarget &ST) { getActionDefinitionsBuilder(G_ADD).legalFor({s32}); getActionDefinitionsBuilder({G_LOAD, G_STORE}) - .legalFor({{s32, p0}}); + .legalForCartesianProduct({p0, s32}, {p0}); getActionDefinitionsBuilder(G_CONSTANT) .legalFor({s32}); |