OLD | NEW |
1 //====- X86InstrNaCl.td - Describe NaCl Instructions ----*- tablegen -*-===// | 1 //====- X86InstrNaCl.td - Describe NaCl Instructions ----*- 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 modifications to the X86 instruction set needed for | 10 // This file describes the modifications to the X86 instruction set needed for |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 | 99 |
100 def NACL_ASPi32: NaClPI64<(outs), (ins i64i32imm:$off, GR64:$rZP), | 100 def NACL_ASPi32: NaClPI64<(outs), (ins i64i32imm:$off, GR64:$rZP), |
101 "naclasp{q}\t{$off, $rZP|$rZP, $off}">; | 101 "naclasp{q}\t{$off, $rZP|$rZP, $off}">; |
102 | 102 |
103 def NACL_SSPi8 : NaClPI64<(outs), (ins i64i8imm:$off, GR64:$rZP), | 103 def NACL_SSPi8 : NaClPI64<(outs), (ins i64i8imm:$off, GR64:$rZP), |
104 "naclssp{q}\t{$off, $rZP|$rZP, $off}">; | 104 "naclssp{q}\t{$off, $rZP|$rZP, $off}">; |
105 | 105 |
106 def NACL_SSPi32: NaClPI64<(outs), (ins i64i32imm:$off, GR64:$rZP), | 106 def NACL_SSPi32: NaClPI64<(outs), (ins i64i32imm:$off, GR64:$rZP), |
107 "naclssp{q}\t{$off, $rZP|$rZP, $off}">; | 107 "naclssp{q}\t{$off, $rZP|$rZP, $off}">; |
108 | 108 |
| 109 def NACL_ANDSPi8: NaClPI64<(outs), (ins i64i8imm:$off, GR64:$rZP), |
| 110 "naclandsp{q}\t{$off, $rZP|$rZP, $off}">; |
| 111 |
109 def NACL_ANDSPi32: NaClPI64<(outs), (ins i64i32imm:$off, GR64:$rZP), | 112 def NACL_ANDSPi32: NaClPI64<(outs), (ins i64i32imm:$off, GR64:$rZP), |
110 "naclandsp{q}\t{$off, $rZP|$rZP, $off}">; | 113 "naclandsp{q}\t{$off, $rZP|$rZP, $off}">; |
111 } | 114 } |
112 | 115 |
113 let Defs = [RSP], Uses = [RBP], isAsmParserOnly = 1 in { | 116 let Defs = [RSP], Uses = [RBP], isAsmParserOnly = 1 in { |
114 def NACL_SPADJi32 : NaClPI64<(outs), (ins i64i32imm:$off, GR64:$rZP), | 117 def NACL_SPADJi32 : NaClPI64<(outs), (ins i64i32imm:$off, GR64:$rZP), |
115 "naclspadj\t{$off, $rZP|$rZP, $off}">; | 118 "naclspadj\t{$off, $rZP|$rZP, $off}">; |
116 } | 119 } |
117 | 120 |
118 let Defs = [RSP], isAsmParserOnly = 1 in { | 121 let Defs = [RSP], isAsmParserOnly = 1 in { |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
239 | 242 |
240 let usesCustomInserter = 1, Defs = [EFLAGS] in | 243 let usesCustomInserter = 1, Defs = [EFLAGS] in |
241 def NACL_CG_VAARG_64 : I<0, Pseudo, | 244 def NACL_CG_VAARG_64 : I<0, Pseudo, |
242 (outs GR32:$dst), | 245 (outs GR32:$dst), |
243 (ins i8mem:$ap, i32imm:$size, i8imm:$mode, i32imm:$align), | 246 (ins i8mem:$ap, i32imm:$size, i8imm:$mode, i32imm:$align), |
244 "#NACL_VAARG_64 $dst, $ap, $size, $mode, $align", | 247 "#NACL_VAARG_64 $dst, $ap, $size, $mode, $align", |
245 [(set GR32:$dst, | 248 [(set GR32:$dst, |
246 (X86vaarg64 addr:$ap, imm:$size, imm:$mode, imm:$align)), | 249 (X86vaarg64 addr:$ap, imm:$size, imm:$mode, imm:$align)), |
247 (implicit EFLAGS)]>, | 250 (implicit EFLAGS)]>, |
248 Requires<[IsNaCl, In64BitMode]>; | 251 Requires<[IsNaCl, In64BitMode]>; |
OLD | NEW |