From: Evan Cheng Date: Mon, 1 Sep 2008 07:19:00 +0000 (+0000) Subject: Reorganize instruction formats again; AXI1 encoding. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=4bbd5f8a9c39f8274219367895bcfc5d296573d7;p=oota-llvm.git Reorganize instruction formats again; AXI1 encoding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55597 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/ARM/ARMInstrFormats.td b/lib/Target/ARM/ARMInstrFormats.td index 9cf574f9d3d..222dc38cf50 100644 --- a/lib/Target/ARM/ARMInstrFormats.td +++ b/lib/Target/ARM/ARMInstrFormats.td @@ -112,6 +112,17 @@ class sI opcod, dag oops, dag iops, AddrMode am, SizeFlagVal sz, list Predicates = [IsARM]; } +// Special cases +class XI opcod, dag oops, dag iops, AddrMode am, SizeFlagVal sz, + IndexMode im, Format f, string asm, string cstr, list pattern> + : InstARM { + let OutOperandList = oops; + let InOperandList = iops; + let AsmString = asm; + let Pattern = pattern; + list Predicates = [IsARM]; +} + class AI opcod, dag oops, dag iops, Format f, string opc, string asm, list pattern> : I opcod, dag oops, dag iops, Format f, string opc, string asm, list pattern> : sI; +class AXI opcod, dag oops, dag iops, Format f, string asm, + list pattern> + : XI; +class AXIx2 opcod, dag oops, dag iops, Format f, string asm, + list pattern> + : XI; // addrmode1 instructions class AI1 opcod, dag oops, dag iops, Format f, string opc, @@ -137,6 +156,14 @@ class AsI1 opcod, dag oops, dag iops, Format f, string opc, let Inst{21-24} = opcod; let Inst{26-27} = 0; } +class AXI1 opcod, dag oops, dag iops, Format f, string asm, + list pattern> + : XI { + let Inst{20} = 1; + let Inst{21-24} = opcod; + let Inst{26-27} = 0; +} class AI1x2 opcod, dag oops, dag iops, Format f, string opc, string asm, list pattern> : I opcod, dag oops, dag iops, Format f, string opc, asm, "", pattern> { let Inst{26-27} = 1; } +class AXI2 opcod, dag oops, dag iops, Format f, string asm, + list pattern> + : XI; // loads class AI2ldw opcod, dag oops, dag iops, Format f, string opc, @@ -272,6 +303,10 @@ class AI3 opcod, dag oops, dag iops, Format f, string opc, string asm, list pattern> : I; +class AXI3 opcod, dag oops, dag iops, Format f, string asm, + list pattern> + : XI; // loads class AI3ldh opcod, dag oops, dag iops, Format f, string opc, @@ -459,45 +494,11 @@ class AI4 opcod, dag oops, dag iops, Format f, string opc, string asm, list pattern> : I; - - - -// Special cases. -class XI opcod, dag oops, dag iops, AddrMode am, SizeFlagVal sz, - IndexMode im, Format f, string asm, string cstr, list pattern> - : InstARM { - let OutOperandList = oops; - let InOperandList = iops; - let AsmString = asm; - let Pattern = pattern; - list Predicates = [IsARM]; -} - -class AXI opcod, dag oops, dag iops, Format f, string asm, - list pattern> - : XI; -class AXI1 opcod, dag oops, dag iops, Format f, string asm, - list pattern> - : XI; -class AXI2 opcod, dag oops, dag iops, Format f, string asm, - list pattern> - : XI; -class AXI3 opcod, dag oops, dag iops, Format f, string asm, - list pattern> - : XI; class AXI4 opcod, dag oops, dag iops, Format f, string asm, list pattern> : XI; -class AXIx2 opcod, dag oops, dag iops, Format f, string asm, - list pattern> - : XI; // BR_JT instructions class JTI opcod, dag oops, dag iops, string asm, list pattern>