summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/functionalities/expr-entry-bp/TestExprEntryBP.py
diff options
context:
space:
mode:
authorAlex Bradbury <asb@lowrisc.org>2018-11-30 09:38:44 +0000
committerAlex Bradbury <asb@lowrisc.org>2018-11-30 09:38:44 +0000
commitbc96a98ed0a548992fa305e6e4a9f1496156466b (patch)
tree0f1c28904f4e2cbe5b8d453689883e4f4db47ab8 /lldb/packages/Python/lldbsuite/test/functionalities/expr-entry-bp/TestExprEntryBP.py
parentf612fadc51747e5ec06c040d31e33532cfa00e9e (diff)
downloadbcm5719-llvm-bc96a98ed0a548992fa305e6e4a9f1496156466b.tar.gz
bcm5719-llvm-bc96a98ed0a548992fa305e6e4a9f1496156466b.zip
[RISCV] Introduce codegen patterns for instructions introduced in RV64I
As discussed in the RFC <http://lists.llvm.org/pipermail/llvm-dev/2018-October/126690.html>, 64-bit RISC-V has i64 as the only legal integer type. This patch introduces patterns to support codegen of the new instructions introduced in RV64I: addiw, addiw, subw, sllw, slliw, srlw, srliw, sraw, sraiw, ld, sd. Custom selection code is needed for srliw as SimplifyDemandedBits will remove lower bits from the mask, meaning the obvious pattern won't work: def : Pat<(sext_inreg (srl (and GPR:$rs1, 0xffffffff), uimm5:$shamt), i32), (SRLIW GPR:$rs1, uimm5:$shamt)>; This is sufficient to compile and execute all of the GCC torture suite for RV64I other than those files using frameaddr or returnaddr intrinsics (LegalizeDAG doesn't know how to promote the operands - a future patch addresses this). When promoting i32 sltu/sltiu operands, it would be more efficient to use sign-extension rather than zero-extension for RV64. A future patch adds a hook to allow this. Differential Revision: https://reviews.llvm.org/D52977 llvm-svn: 347973
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/functionalities/expr-entry-bp/TestExprEntryBP.py')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud