diff options
| author | Owen Anderson <resistor@mac.com> | 2010-11-29 18:54:38 +0000 | 
|---|---|---|
| committer | Owen Anderson <resistor@mac.com> | 2010-11-29 18:54:38 +0000 | 
| commit | b044bc67f49cf6e24dbda05323f1547d87d82ef3 (patch) | |
| tree | 4dc1d88a1eac042fd74aaa9040b5223a6f0e8ccd /llvm/lib/Target/ARM | |
| parent | 0591656b135999ef587618d8e826b7eead87010e (diff) | |
| download | bcm5719-llvm-b044bc67f49cf6e24dbda05323f1547d87d82ef3.tar.gz bcm5719-llvm-b044bc67f49cf6e24dbda05323f1547d87d82ef3.zip | |
Thumb2 encodings for branches and IT blocks.
llvm-svn: 120306
Diffstat (limited to 'llvm/lib/Target/ARM')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMInstrThumb2.td | 15 | 
1 files changed, 15 insertions, 0 deletions
| diff --git a/llvm/lib/Target/ARM/ARMInstrThumb2.td b/llvm/lib/Target/ARM/ARMInstrThumb2.td index 91db280eb83..d4f83d27e60 100644 --- a/llvm/lib/Target/ARM/ARMInstrThumb2.td +++ b/llvm/lib/Target/ARM/ARMInstrThumb2.td @@ -2921,6 +2921,13 @@ def t2B   : T2XI<(outs), (ins brtarget:$target), IIC_Br,    let Inst{31-27} = 0b11110;    let Inst{15-14} = 0b10;    let Inst{12} = 1; + +  bits<20> target; +  let Inst{26} = target{19}; +  let Inst{11} = target{18}; +  let Inst{13} = target{17}; +  let Inst{21-16} = target{16-11}; +  let Inst{10-0} = target{10-0};  }  let isNotDuplicable = 1, isIndirectBranch = 1, @@ -3004,6 +3011,11 @@ def t2IT : Thumb2XI<(outs), (ins it_pred:$cc, it_mask:$mask),    // 16-bit instruction.    let Inst{31-16} = 0x0000;    let Inst{15-8} = 0b10111111; + +  bits<4> cc; +  bits<4> mask; +  let Inst{7-4} = cc{3-0}; +  let Inst{3-0} = mask{3-0};  }  // Branch and Exchange Jazelle -- for disassembly only @@ -3015,6 +3027,9 @@ def t2BXJ : T2I<(outs), (ins rGPR:$func), NoItinerary, "bxj", "\t$func",    let Inst{25-20} = 0b111100;    let Inst{15-14} = 0b10;    let Inst{12} = 0; +   +  bits<4> func; +  let Inst{19-16} = func{3-0};  }  // Change Processor State is a system instruction -- for disassembly only. | 

