summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/RISCV/RISCVISelLowering.h
diff options
context:
space:
mode:
authorAlex Bradbury <asb@lowrisc.org>2018-04-12 05:34:25 +0000
committerAlex Bradbury <asb@lowrisc.org>2018-04-12 05:34:25 +0000
commit0b4175f160a274d02fa556edcc1ccab02a2f01b6 (patch)
tree9682f4af1f55389fde5fc5a17119d9c2a4173e18 /llvm/lib/Target/RISCV/RISCVISelLowering.h
parentbedca0b41beca52fee97914a3c921e93e933c7f6 (diff)
downloadbcm5719-llvm-0b4175f160a274d02fa556edcc1ccab02a2f01b6.tar.gz
bcm5719-llvm-0b4175f160a274d02fa556edcc1ccab02a2f01b6.zip
[RISCV] Codegen support for RV32D floating point load/store, fadd.d, calling conv
fadd.d is required in order to force floating point registers to be used in test code, as parameters are passed in integer registers in the soft float ABI. Much of this patch is concerned with support for passing f64 on RV32D with a soft-float ABI. Similar to Mips, introduce pseudoinstructions to build an f64 out of a pair of i32 and to split an f64 to a pair of i32. BUILD_PAIR and EXTRACT_ELEMENT can't be used, as a BITCAST to i64 would be necessary, but i64 is not a legal type. llvm-svn: 329871
Diffstat (limited to 'llvm/lib/Target/RISCV/RISCVISelLowering.h')
-rw-r--r--llvm/lib/Target/RISCV/RISCVISelLowering.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.h b/llvm/lib/Target/RISCV/RISCVISelLowering.h
index 101fd6e2f0a..c42078dc0d2 100644
--- a/llvm/lib/Target/RISCV/RISCVISelLowering.h
+++ b/llvm/lib/Target/RISCV/RISCVISelLowering.h
@@ -26,7 +26,9 @@ enum NodeType : unsigned {
FIRST_NUMBER = ISD::BUILTIN_OP_END,
RET_FLAG,
CALL,
- SELECT_CC
+ SELECT_CC,
+ BuildPairF64,
+ SplitF64
};
}
OpenPOWER on IntegriCloud