[llvm-commits] [llvm] r98679 - in /llvm/trunk/lib/Target/ARM: ARMInstrInfo.td ARMInstrVFP.td
Johnny Chen
johnny.chen at apple.com
Wed Mar 17 10:10:35 PDT 2010
Specifying the encoding bit (Inst{21} = 1) helps the decoder which is mostly
based on the well-known encoding bits of instructions. Can I keep it in?
On Mar 17, 2010, at 8:46 AM, Bob Wilson wrote:
> These variants are already distinguished by IndexModeNone vs. IndexModeUpd. Can you use that distinction to determine the writeback bit?
>
> On Mar 16, 2010, at 2:25 PM, Johnny Chen wrote:
>
>> Author: johnny
>> Date: Tue Mar 16 16:25:05 2010
>> New Revision: 98679
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=98679&view=rev
>> Log:
>> Disambiguate the *_UPD and * variants by specifying the writeback flag as 1.
>> This is for the disassembly work.
>>
>> There are cases where this is not possible, for example, A8.6.53 LDM Encoding T1.
>> In such case, we'll use an adhoc approach to deduce the Opcode programmatically.
>>
>> Modified:
>> llvm/trunk/lib/Target/ARM/ARMInstrInfo.td
>> llvm/trunk/lib/Target/ARM/ARMInstrVFP.td
>>
>> Modified: llvm/trunk/lib/Target/ARM/ARMInstrInfo.td
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMInstrInfo.td?rev=98679&r1=98678&r2=98679&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Target/ARM/ARMInstrInfo.td (original)
>> +++ llvm/trunk/lib/Target/ARM/ARMInstrInfo.td Tue Mar 16 16:25:05 2010
>> @@ -1355,7 +1355,9 @@
>> reglist:$dsts, variable_ops),
>> IndexModeUpd, LdStMulFrm, IIC_iLoadm,
>> "ldm${addr:submode}${p}\t$addr!, $dsts",
>> - "$addr.addr = $wb", []>;
>> + "$addr.addr = $wb", []> {
>> + let Inst{21} = 1; // wback
>> +}
>> } // mayLoad, hasExtraDefRegAllocReq
>>
>> let mayStore = 1, hasExtraSrcRegAllocReq = 1 in {
>> @@ -1368,7 +1370,9 @@
>> reglist:$srcs, variable_ops),
>> IndexModeUpd, LdStMulFrm, IIC_iStorem,
>> "stm${addr:submode}${p}\t$addr!, $srcs",
>> - "$addr.addr = $wb", []>;
>> + "$addr.addr = $wb", []> {
>> + let Inst{21} = 1; // wback
>> +}
>> } // mayStore, hasExtraSrcRegAllocReq
>>
>> //===----------------------------------------------------------------------===//
>>
>> Modified: llvm/trunk/lib/Target/ARM/ARMInstrVFP.td
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMInstrVFP.td?rev=98679&r1=98678&r2=98679&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Target/ARM/ARMInstrVFP.td (original)
>> +++ llvm/trunk/lib/Target/ARM/ARMInstrVFP.td Tue Mar 16 16:25:05 2010
>> @@ -96,6 +96,7 @@
>> IndexModeUpd, IIC_fpLoadm,
>> "vldm${addr:submode}${p}\t${addr:base}!, $dsts",
>> "$addr.base = $wb", []> {
>> + let Inst{21} = 1; // wback
>> let Inst{20} = 1;
>> }
>>
>> @@ -104,6 +105,7 @@
>> IndexModeUpd, IIC_fpLoadm,
>> "vldm${addr:submode}${p}\t${addr:base}!, $dsts",
>> "$addr.base = $wb", []> {
>> + let Inst{21} = 1; // wback
>> let Inst{20} = 1;
>> }
>> } // mayLoad, hasExtraDefRegAllocReq
>> @@ -126,6 +128,7 @@
>> IndexModeUpd, IIC_fpStorem,
>> "vstm${addr:submode}${p}\t${addr:base}!, $srcs",
>> "$addr.base = $wb", []> {
>> + let Inst{21} = 1; // wback
>> let Inst{20} = 0;
>> }
>>
>> @@ -134,6 +137,7 @@
>> IndexModeUpd, IIC_fpStorem,
>> "vstm${addr:submode}${p}\t${addr:base}!, $srcs",
>> "$addr.base = $wb", []> {
>> + let Inst{21} = 1; // wback
>> let Inst{20} = 0;
>> }
>> } // mayStore, hasExtraSrcRegAllocReq
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
More information about the llvm-commits
mailing list