From 1963783fab96e91cfcba59a4fa08d132040f0a7a Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 17 Dec 2005 20:26:45 +0000 Subject: [PATCH] Add integer load[r+r] forms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24785 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/Sparc/SparcInstrInfo.td | 23 +++++++++++++++++++++++ lib/Target/SparcV8/SparcV8InstrInfo.td | 23 +++++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/lib/Target/Sparc/SparcInstrInfo.td b/lib/Target/Sparc/SparcInstrInfo.td index 100c4aca59f..aceb035fbe7 100644 --- a/lib/Target/Sparc/SparcInstrInfo.td +++ b/lib/Target/Sparc/SparcInstrInfo.td @@ -107,26 +107,49 @@ let rd = 0 in "cmp $b, $c", []>; // Section B.1 - Load Integer Instructions, p. 90 +def LDSBrr : F3_1<3, 0b001001, + (ops IntRegs:$dst, MEMrr:$addr), + "ldsb [$addr], $dst", + [(set IntRegs:$dst, (sextload ADDRrr:$addr, i8))]>; def LDSBri : F3_2<3, 0b001001, (ops IntRegs:$dst, MEMri:$addr), "ldsb [$addr], $dst", [(set IntRegs:$dst, (sextload ADDRri:$addr, i8))]>; +def LDSHrr : F3_1<3, 0b001010, + (ops IntRegs:$dst, MEMrr:$addr), + "ldsh [$addr], $dst", + [(set IntRegs:$dst, (sextload ADDRrr:$addr, i16))]>; def LDSHri : F3_2<3, 0b001010, (ops IntRegs:$dst, MEMri:$addr), "ldsh [$addr], $dst", [(set IntRegs:$dst, (sextload ADDRri:$addr, i16))]>; +def LDUBrr : F3_1<3, 0b000001, + (ops IntRegs:$dst, MEMrr:$addr), + "ldub [$addr], $dst", + [(set IntRegs:$dst, (zextload ADDRrr:$addr, i8))]>; def LDUBri : F3_2<3, 0b000001, (ops IntRegs:$dst, MEMri:$addr), "ldub [$addr], $dst", [(set IntRegs:$dst, (zextload ADDRri:$addr, i8))]>; +def LDUHrr : F3_1<3, 0b000010, + (ops IntRegs:$dst, MEMrr:$addr), + "lduh [$addr], $dst", + [(set IntRegs:$dst, (zextload ADDRrr:$addr, i16))]>; def LDUHri : F3_2<3, 0b000010, (ops IntRegs:$dst, MEMri:$addr), "lduh [$addr], $dst", [(set IntRegs:$dst, (zextload ADDRri:$addr, i16))]>; +def LDrr : F3_1<3, 0b000000, + (ops IntRegs:$dst, MEMrr:$addr), + "ld [$addr], $dst", + [(set IntRegs:$dst, (load ADDRrr:$addr))]>; def LDri : F3_2<3, 0b000000, (ops IntRegs:$dst, MEMri:$addr), "ld [$addr], $dst", [(set IntRegs:$dst, (load ADDRri:$addr))]>; +def LDDrr : F3_1<3, 0b000011, + (ops IntRegs:$dst, MEMrr:$addr), + "ldd [$addr], $dst", []>; def LDDri : F3_2<3, 0b000011, (ops IntRegs:$dst, MEMri:$addr), "ldd [$addr], $dst", []>; diff --git a/lib/Target/SparcV8/SparcV8InstrInfo.td b/lib/Target/SparcV8/SparcV8InstrInfo.td index 100c4aca59f..aceb035fbe7 100644 --- a/lib/Target/SparcV8/SparcV8InstrInfo.td +++ b/lib/Target/SparcV8/SparcV8InstrInfo.td @@ -107,26 +107,49 @@ let rd = 0 in "cmp $b, $c", []>; // Section B.1 - Load Integer Instructions, p. 90 +def LDSBrr : F3_1<3, 0b001001, + (ops IntRegs:$dst, MEMrr:$addr), + "ldsb [$addr], $dst", + [(set IntRegs:$dst, (sextload ADDRrr:$addr, i8))]>; def LDSBri : F3_2<3, 0b001001, (ops IntRegs:$dst, MEMri:$addr), "ldsb [$addr], $dst", [(set IntRegs:$dst, (sextload ADDRri:$addr, i8))]>; +def LDSHrr : F3_1<3, 0b001010, + (ops IntRegs:$dst, MEMrr:$addr), + "ldsh [$addr], $dst", + [(set IntRegs:$dst, (sextload ADDRrr:$addr, i16))]>; def LDSHri : F3_2<3, 0b001010, (ops IntRegs:$dst, MEMri:$addr), "ldsh [$addr], $dst", [(set IntRegs:$dst, (sextload ADDRri:$addr, i16))]>; +def LDUBrr : F3_1<3, 0b000001, + (ops IntRegs:$dst, MEMrr:$addr), + "ldub [$addr], $dst", + [(set IntRegs:$dst, (zextload ADDRrr:$addr, i8))]>; def LDUBri : F3_2<3, 0b000001, (ops IntRegs:$dst, MEMri:$addr), "ldub [$addr], $dst", [(set IntRegs:$dst, (zextload ADDRri:$addr, i8))]>; +def LDUHrr : F3_1<3, 0b000010, + (ops IntRegs:$dst, MEMrr:$addr), + "lduh [$addr], $dst", + [(set IntRegs:$dst, (zextload ADDRrr:$addr, i16))]>; def LDUHri : F3_2<3, 0b000010, (ops IntRegs:$dst, MEMri:$addr), "lduh [$addr], $dst", [(set IntRegs:$dst, (zextload ADDRri:$addr, i16))]>; +def LDrr : F3_1<3, 0b000000, + (ops IntRegs:$dst, MEMrr:$addr), + "ld [$addr], $dst", + [(set IntRegs:$dst, (load ADDRrr:$addr))]>; def LDri : F3_2<3, 0b000000, (ops IntRegs:$dst, MEMri:$addr), "ld [$addr], $dst", [(set IntRegs:$dst, (load ADDRri:$addr))]>; +def LDDrr : F3_1<3, 0b000011, + (ops IntRegs:$dst, MEMrr:$addr), + "ldd [$addr], $dst", []>; def LDDri : F3_2<3, 0b000011, (ops IntRegs:$dst, MEMri:$addr), "ldd [$addr], $dst", []>; -- 2.34.1