summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/RISCV
diff options
context:
space:
mode:
authorAlex Bradbury <asb@lowrisc.org>2017-12-07 10:59:12 +0000
committerAlex Bradbury <asb@lowrisc.org>2017-12-07 10:59:12 +0000
commit48f95a655d61c4526f67b10f307a9ba2fe28352a (patch)
treedc0694c514cd145db3dc9564f1aa110353b373e5 /llvm/lib/Target/RISCV
parent81def7224ecca013eafc3c6402df18f6af791e41 (diff)
downloadbcm5719-llvm-48f95a655d61c4526f67b10f307a9ba2fe28352a.tar.gz
bcm5719-llvm-48f95a655d61c4526f67b10f307a9ba2fe28352a.zip
[RISCV] MC layer support for the standard RV64A instruction set extension
llvm-svn: 320027
Diffstat (limited to 'llvm/lib/Target/RISCV')
-rw-r--r--llvm/lib/Target/RISCV/RISCVInstrInfoA.td14
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoA.td b/llvm/lib/Target/RISCV/RISCVInstrInfoA.td
index 54f35c3c0ba..33e863ba6a1 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfoA.td
+++ b/llvm/lib/Target/RISCV/RISCVInstrInfoA.td
@@ -61,3 +61,17 @@ defm AMOMAX_W : AMO_rr_aq_rl<0b10100, 0b010, "amomax.w">;
defm AMOMINU_W : AMO_rr_aq_rl<0b11000, 0b010, "amominu.w">;
defm AMOMAXU_W : AMO_rr_aq_rl<0b11100, 0b010, "amomaxu.w">;
} // Predicates = [HasStdExtA]
+
+let Predicates = [HasStdExtA, IsRV64] in {
+defm LR_D : LR_r_aq_rl<0b011, "lr.d">;
+defm SC_D : AMO_rr_aq_rl<0b00011, 0b011, "sc.d">;
+defm AMOSWAP_D : AMO_rr_aq_rl<0b00001, 0b011, "amoswap.d">;
+defm AMOADD_D : AMO_rr_aq_rl<0b00000, 0b011, "amoadd.d">;
+defm AMOXOR_D : AMO_rr_aq_rl<0b00100, 0b011, "amoxor.d">;
+defm AMOAND_D : AMO_rr_aq_rl<0b01100, 0b011, "amoand.d">;
+defm AMOOR_D : AMO_rr_aq_rl<0b01000, 0b011, "amoor.d">;
+defm AMOMIN_D : AMO_rr_aq_rl<0b10000, 0b011, "amomin.d">;
+defm AMOMAX_D : AMO_rr_aq_rl<0b10100, 0b011, "amomax.d">;
+defm AMOMINU_D : AMO_rr_aq_rl<0b11000, 0b011, "amominu.d">;
+defm AMOMAXU_D : AMO_rr_aq_rl<0b11100, 0b011, "amomaxu.d">;
+} // Predicates = [HasStedExtA, IsRV64]
OpenPOWER on IntegriCloud