summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorDan Gohman <dan433584@gmail.com>2015-11-14 23:15:41 +0000
committerDan Gohman <dan433584@gmail.com>2015-11-14 23:15:41 +0000
commit8ad045c1d14ff13a6f4acb3ce1ed83c1111856a8 (patch)
tree44f41f79c1b98535322aad5252b60070e54aa62b /llvm/lib
parentc17e140b39d7874feaf049b92539fb7b122c4af9 (diff)
downloadbcm5719-llvm-8ad045c1d14ff13a6f4acb3ce1ed83c1111856a8.tar.gz
bcm5719-llvm-8ad045c1d14ff13a6f4acb3ce1ed83c1111856a8.zip
[WebAssembly] Support signext, zeroext, and several other function attributes.
llvm-svn: 253148
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp22
1 files changed, 0 insertions, 22 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
index b79cbb18f57..85a123bdc56 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
@@ -309,8 +309,6 @@ WebAssemblyTargetLowering::LowerCall(CallLoweringInfo &CLI,
Chain = Res.getValue(1);
}
- // FIXME: handle CLI.RetSExt and CLI.RetZExt?
-
Chain = DAG.getCALLSEQ_END(Chain, NB, Zero, SDValue(), DL);
return Chain;
@@ -342,22 +340,12 @@ SDValue WebAssemblyTargetLowering::LowerReturn(
// Record the number and types of the return values.
for (const ISD::OutputArg &Out : Outs) {
- if (Out.Flags.isZExt())
- fail(DL, DAG, "WebAssembly hasn't implemented zext results");
- if (Out.Flags.isSExt())
- fail(DL, DAG, "WebAssembly hasn't implemented sext results");
- if (Out.Flags.isInReg())
- fail(DL, DAG, "WebAssembly hasn't implemented inreg results");
- if (Out.Flags.isSRet())
- fail(DL, DAG, "WebAssembly hasn't implemented sret results");
if (Out.Flags.isByVal())
fail(DL, DAG, "WebAssembly hasn't implemented byval results");
if (Out.Flags.isInAlloca())
fail(DL, DAG, "WebAssembly hasn't implemented inalloca results");
if (Out.Flags.isNest())
fail(DL, DAG, "WebAssembly hasn't implemented nest results");
- if (Out.Flags.isReturned())
- fail(DL, DAG, "WebAssembly hasn't implemented returned results");
if (Out.Flags.isInConsecutiveRegs())
fail(DL, DAG, "WebAssembly hasn't implemented cons regs results");
if (Out.Flags.isInConsecutiveRegsLast())
@@ -383,22 +371,12 @@ SDValue WebAssemblyTargetLowering::LowerFormalArguments(
unsigned ArgNo = 0;
for (const ISD::InputArg &In : Ins) {
- if (In.Flags.isZExt())
- fail(DL, DAG, "WebAssembly hasn't implemented zext arguments");
- if (In.Flags.isSExt())
- fail(DL, DAG, "WebAssembly hasn't implemented sext arguments");
- if (In.Flags.isInReg())
- fail(DL, DAG, "WebAssembly hasn't implemented inreg arguments");
- if (In.Flags.isSRet())
- fail(DL, DAG, "WebAssembly hasn't implemented sret arguments");
if (In.Flags.isByVal())
fail(DL, DAG, "WebAssembly hasn't implemented byval arguments");
if (In.Flags.isInAlloca())
fail(DL, DAG, "WebAssembly hasn't implemented inalloca arguments");
if (In.Flags.isNest())
fail(DL, DAG, "WebAssembly hasn't implemented nest arguments");
- if (In.Flags.isReturned())
- fail(DL, DAG, "WebAssembly hasn't implemented returned arguments");
if (In.Flags.isInConsecutiveRegs())
fail(DL, DAG, "WebAssembly hasn't implemented cons regs arguments");
if (In.Flags.isInConsecutiveRegsLast())
OpenPOWER on IntegriCloud