summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2008-09-01 01:51:14 +0000
committerEvan Cheng <evan.cheng@apple.com>2008-09-01 01:51:14 +0000
commit624844b4dd27ec05bc33a4c54e913e2ed2ecb3f3 (patch)
treeaa3227aa1c8069bd09f934d16abf62edf599a6f5
parentcccca875b17b3b2ba8cdeb53c4e9f9b84d8a3c26 (diff)
Reorganize some instruction format definitions. No functionality change.
llvm-svn: 55594
-rw-r--r--llvm/lib/Target/ARM/ARMInstrFormats.td47
1 files changed, 29 insertions, 18 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrFormats.td b/llvm/lib/Target/ARM/ARMInstrFormats.td
index 798f8c36fc78..d3b97239fe4d 100644
--- a/llvm/lib/Target/ARM/ARMInstrFormats.td
+++ b/llvm/lib/Target/ARM/ARMInstrFormats.td
@@ -120,6 +120,8 @@ class AsI<bits<4> opcod, dag oops, dag iops, Format f, string opc,
string asm, list<dag> pattern>
: sI<opcod, oops, iops, AddrModeNone, Size4Bytes, IndexModeNone, f, opc,
asm,"",pattern>;
+
+// addrmode1 instructions
class AI1<bits<4> opcod, dag oops, dag iops, Format f, string opc,
string asm, list<dag> pattern>
: I<opcod, oops, iops, AddrMode1, Size4Bytes, IndexModeNone, f, opc,
@@ -135,7 +137,13 @@ class AsI1<bits<4> opcod, dag oops, dag iops, Format f, string opc,
let Inst{21-24} = opcod;
let Inst{26-27} = 0;
}
+class AI1x2<bits<4> opcod, dag oops, dag iops, Format f, string opc,
+ string asm, list<dag> pattern>
+ : I<opcod, oops, iops, AddrMode1, Size8Bytes, IndexModeNone, f, opc,
+ asm, "", pattern>;
+
+// addrmode2 loads and stores
class AI2<bits<4> opcod, dag oops, dag iops, Format f, string opc,
string asm, list<dag> pattern>
: I<opcod, oops, iops, AddrMode2, Size4Bytes, IndexModeNone, f, opc,
@@ -179,19 +187,6 @@ class AI2stb<bits<4> opcod, dag oops, dag iops, Format f, string opc,
let Inst{24} = 1; // P bit
}
-class AI3<bits<4> opcod, dag oops, dag iops, Format f, string opc,
- string asm, list<dag> pattern>
- : I<opcod, oops, iops, AddrMode3, Size4Bytes, IndexModeNone, f, opc,
- asm, "", pattern>;
-class AI4<bits<4> opcod, dag oops, dag iops, Format f, string opc,
- string asm, list<dag> pattern>
- : I<opcod, oops, iops, AddrMode4, Size4Bytes, IndexModeNone, f, opc,
- asm, "", pattern>;
-class AI1x2<bits<4> opcod, dag oops, dag iops, Format f, string opc,
- string asm, list<dag> pattern>
- : I<opcod, oops, iops, AddrMode1, Size8Bytes, IndexModeNone, f, opc,
- asm, "", pattern>;
-
// Pre-indexed ops
// loads
class AI2ldwpr<bits<4> opcod, dag oops, dag iops, Format f, string opc,
@@ -233,11 +228,6 @@ class AI2stbpr<bits<4> opcod, dag oops, dag iops, Format f, string opc,
let Inst{24} = 1; // P bit
}
-class AI3pr<bits<4> opcod, dag oops, dag iops, Format f, string opc,
- string asm, string cstr, list<dag> pattern>
- : I<opcod, oops, iops, AddrMode3, Size4Bytes, IndexModePre, f, opc,
- asm, cstr, pattern>;
-
// Post-indexed ops
// loads
class AI2ldwpo<bits<4> opcod, dag oops, dag iops, Format f, string opc,
@@ -279,6 +269,27 @@ class AI2stbpo<bits<4> opcod, dag oops, dag iops, Format f, string opc,
let Inst{24} = 0; // P bit
}
+// addrmode3 instructions
+class AI3<bits<4> opcod, dag oops, dag iops, Format f, string opc,
+ string asm, list<dag> pattern>
+ : I<opcod, oops, iops, AddrMode3, Size4Bytes, IndexModeNone, f, opc,
+ asm, "", pattern>;
+
+// addrmode4 instructions
+class AI4<bits<4> opcod, dag oops, dag iops, Format f, string opc,
+ string asm, list<dag> pattern>
+ : I<opcod, oops, iops, AddrMode4, Size4Bytes, IndexModeNone, f, opc,
+ asm, "", pattern>;
+
+
+// Pre-indexed ops
+class AI3pr<bits<4> opcod, dag oops, dag iops, Format f, string opc,
+ string asm, string cstr, list<dag> pattern>
+ : I<opcod, oops, iops, AddrMode3, Size4Bytes, IndexModePre, f, opc,
+ asm, cstr, pattern>;
+
+
+// Post-indexed ops
class AI3po<bits<4> opcod, dag oops, dag iops, Format f, string opc,
string asm, string cstr, list<dag> pattern>
: I<opcod, oops, iops, AddrMode3, Size4Bytes, IndexModePost, f, opc,