Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(30)

Side by Side Diff: lib/Target/ARM/ARMInstrInfo.td

Issue 96065: non inline jumptables for arm Base URL: http://llvm.org/svn/llvm-project/llvm/trunk/
Patch Set: update to more recent svn rev Created 15 years, 9 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 //===- ARMInstrInfo.td - Target Description for ARM Target -*- tablegen -*-===// 1 //===- ARMInstrInfo.td - Target Description for ARM Target -*- tablegen -*-===//
2 // 2 //
3 // The LLVM Compiler Infrastructure 3 // The LLVM Compiler Infrastructure
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 // 9 //
10 // This file describes the ARM instructions in TableGen format. 10 // This file describes the ARM instructions in TableGen format.
(...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 // Control Flow Instructions. 579 // Control Flow Instructions.
580 // 580 //
581 581
582 let isReturn = 1, isTerminator = 1 in 582 let isReturn = 1, isTerminator = 1 in
583 def BX_RET : AI<(outs), (ins), BrMiscFrm, "bx", " lr", [(ARMretflag)]> { 583 def BX_RET : AI<(outs), (ins), BrMiscFrm, "bx", " lr", [(ARMretflag)]> {
584 let Inst{7-4} = 0b0001; 584 let Inst{7-4} = 0b0001;
585 let Inst{19-8} = 0b111111111111; 585 let Inst{19-8} = 0b111111111111;
586 let Inst{27-20} = 0b00010010; 586 let Inst{27-20} = 0b00010010;
587 } 587 }
588 588
589 // Indirect branches
590 let isBranch = 1, isTerminator = 1, isBarrier = 1, isIndirectBranch = 1 in {
muth02446 2009/07/17 21:02:30 probably only works for amv5 and higher (c.f. code
591 def BRIND : AXI<(outs), (ins GPR:$dst), BrMiscFrm, "bx $dst",
592 [(brind GPR:$dst)]> {
593 let Inst{7-4} = 0b0001;
594 let Inst{19-8} = 0b111111111111;
595 let Inst{27-20} = 0b00010010;
596 }
597 }
598
589 // FIXME: remove when we have a way to marking a MI with these properties. 599 // FIXME: remove when we have a way to marking a MI with these properties.
590 // FIXME: $dst1 should be a def. But the extra ops must be in the end of the 600 // FIXME: $dst1 should be a def. But the extra ops must be in the end of the
591 // operand list. 601 // operand list.
592 // FIXME: Should pc be an implicit operand like PICADD, etc? 602 // FIXME: Should pc be an implicit operand like PICADD, etc?
593 let isReturn = 1, isTerminator = 1, mayLoad = 1 in 603 let isReturn = 1, isTerminator = 1, mayLoad = 1 in
594 def LDM_RET : AXI4ld<(outs), 604 def LDM_RET : AXI4ld<(outs),
595 (ins addrmode4:$addr, pred:$p, reglist:$dst1, variable_ops), 605 (ins addrmode4:$addr, pred:$p, reglist:$dst1, variable_ops),
596 LdStMulFrm, "ldm${p}${addr:submode} $addr, $dst1", 606 LdStMulFrm, "ldm${p}${addr:submode} $addr, $dst1",
597 []>; 607 []>;
598 608
(...skipping 908 matching lines...) Expand 10 before | Expand all | Expand 10 after
1507 // Floating Point Support 1517 // Floating Point Support
1508 // 1518 //
1509 1519
1510 include "ARMInstrVFP.td" 1520 include "ARMInstrVFP.td"
1511 1521
1512 //===----------------------------------------------------------------------===// 1522 //===----------------------------------------------------------------------===//
1513 // Advanced SIMD (NEON) Support 1523 // Advanced SIMD (NEON) Support
1514 // 1524 //
1515 1525
1516 include "ARMInstrNEON.td" 1526 include "ARMInstrNEON.td"
OLDNEW

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b