OLD | NEW |
1 //===- MipsInstrInfo.td - Target Description for Mips Target -*- tablegen -*-=// | 1 //===- MipsInstrInfo.td - Target Description for Mips 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 contains the Mips implementation of the TargetInstrInfo class. | 10 // This file contains the Mips implementation of the TargetInstrInfo class. |
(...skipping 823 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
834 MipsAsmPseudoInst<(outs CPURegs:$dst), (ins CPURegs:$src1, CPURegs:$src2), | 834 MipsAsmPseudoInst<(outs CPURegs:$dst), (ins CPURegs:$src1, CPURegs:$src2), |
835 "sfi_return_preamble\t$dst, $src1, $src2">; | 835 "sfi_return_preamble\t$dst, $src1, $src2">; |
836 | 836 |
837 def SFI_NOP_IF_AT_BUNDLE_END : | 837 def SFI_NOP_IF_AT_BUNDLE_END : |
838 MipsAsmPseudoInst<(outs), (ins), "sfi_nop_if_at_bundle_end">; | 838 MipsAsmPseudoInst<(outs), (ins), "sfi_nop_if_at_bundle_end">; |
839 | 839 |
840 def SFI_DATA_MASK : | 840 def SFI_DATA_MASK : |
841 MipsAsmPseudoInst<(outs CPURegs:$dst), (ins CPURegs:$src1, CPURegs:$src2), | 841 MipsAsmPseudoInst<(outs CPURegs:$dst), (ins CPURegs:$src1, CPURegs:$src2), |
842 "sfi_data_mask\t$dst, $src1, $src2">; | 842 "sfi_data_mask\t$dst, $src1, $src2">; |
843 | 843 |
| 844 // See the comment in MipsLongBranch.cpp why we need these two instructions. |
| 845 def NACL_LONG_BRANCH_LUi : |
| 846 MipsAsmPseudoInst<(outs CPURegs:$dst), (ins brtarget:$tgt, brtarget:$baltgt), |
| 847 "nacl_long_branch_lui\t$dst, $tgt, $baltgt">; |
| 848 |
| 849 def NACL_LONG_BRANCH_ADDiu : |
| 850 MipsAsmPseudoInst<(outs CPURegs:$dst), |
| 851 (ins CPURegs:$src, brtarget:$tgt, brtarget:$baltgt), |
| 852 "nacl_long_branch_addiu\t$dst, $src, $tgt, $baltgt">; |
| 853 |
844 // @LOCALMOD-END | 854 // @LOCALMOD-END |
845 | 855 |
846 // Return RA. | 856 // Return RA. |
847 let isReturn=1, isTerminator=1, hasDelaySlot=1, isBarrier=1, hasCtrlDep=1 in | 857 let isReturn=1, isTerminator=1, hasDelaySlot=1, isBarrier=1, hasCtrlDep=1 in |
848 def RetRA : PseudoSE<(outs), (ins), [(MipsRet)]>; | 858 def RetRA : PseudoSE<(outs), (ins), [(MipsRet)]>; |
849 | 859 |
850 let Defs = [SP], Uses = [SP], hasSideEffects = 1 in { | 860 let Defs = [SP], Uses = [SP], hasSideEffects = 1 in { |
851 def ADJCALLSTACKDOWN : MipsPseudo<(outs), (ins i32imm:$amt), | 861 def ADJCALLSTACKDOWN : MipsPseudo<(outs), (ins i32imm:$amt), |
852 [(callseq_start timm:$amt)]>; | 862 [(callseq_start timm:$amt)]>; |
853 def ADJCALLSTACKUP : MipsPseudo<(outs), (ins i32imm:$amt1, i32imm:$amt2), | 863 def ADJCALLSTACKUP : MipsPseudo<(outs), (ins i32imm:$amt1, i32imm:$amt2), |
(...skipping 533 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1387 include "Mips16InstrFormats.td" | 1397 include "Mips16InstrFormats.td" |
1388 include "Mips16InstrInfo.td" | 1398 include "Mips16InstrInfo.td" |
1389 | 1399 |
1390 // DSP | 1400 // DSP |
1391 include "MipsDSPInstrFormats.td" | 1401 include "MipsDSPInstrFormats.td" |
1392 include "MipsDSPInstrInfo.td" | 1402 include "MipsDSPInstrInfo.td" |
1393 | 1403 |
1394 // Micromips | 1404 // Micromips |
1395 include "MicroMipsInstrFormats.td" | 1405 include "MicroMipsInstrFormats.td" |
1396 include "MicroMipsInstrInfo.td" | 1406 include "MicroMipsInstrInfo.td" |
OLD | NEW |