Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 //===- subzero/src/IceInstARM32.cpp - ARM32 instruction implementation ----===// | 1 //===- subzero/src/IceInstARM32.cpp - ARM32 instruction implementation ----===// |
| 2 // | 2 // |
| 3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
| 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 /// \file | 10 /// \file |
| (...skipping 1189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1200 if (!llvm::isa<Variable>(Src0)) | 1200 if (!llvm::isa<Variable>(Src0)) |
| 1201 // TODO(kschimpf) Handle moving constants into registers. | 1201 // TODO(kschimpf) Handle moving constants into registers. |
| 1202 return Asm->setNeedsTextFixup(); | 1202 return Asm->setNeedsTextFixup(); |
| 1203 | 1203 |
| 1204 // Move register to register. | 1204 // Move register to register. |
| 1205 Variable *Dest = getDest(); | 1205 Variable *Dest = getDest(); |
| 1206 switch (Dest->getType()) { | 1206 switch (Dest->getType()) { |
| 1207 default: | 1207 default: |
| 1208 // TODO(kschimpf): Fill this out more. | 1208 // TODO(kschimpf): Fill this out more. |
| 1209 return Asm->setNeedsTextFixup(); | 1209 return Asm->setNeedsTextFixup(); |
| 1210 case IceType_i1: | |
| 1211 case IceType_i8: | |
| 1212 case IceType_i16: | |
| 1213 case IceType_i32: | |
|
Jim Stichnoth
2016/01/27 22:59:22
If you're planning on eventually listing all of th
Karl
2016/01/27 23:36:42
Because of "preprocessing" before this method is c
| |
| 1214 assert(Src0->getType() == IceType_f32 && "Expected int to float move"); | |
| 1215 Asm->vmovrs(Dest, Src0, getPredicate()); | |
| 1216 return; | |
| 1210 case IceType_f32: | 1217 case IceType_f32: |
| 1211 switch (Src0->getType()) { | 1218 switch (Src0->getType()) { |
| 1212 default: | 1219 default: |
| 1213 // TODO(kschimpf): Fill this out more? | 1220 assert(false && "Expected float to int move"); |
| 1214 return Asm->setNeedsTextFixup(); | 1221 return; |
| 1222 case IceType_i1: | |
| 1223 case IceType_i8: | |
| 1224 case IceType_i16: | |
| 1215 case IceType_i32: | 1225 case IceType_i32: |
| 1216 return Asm->vmovsr(Dest, Src0, getPredicate()); | 1226 return Asm->vmovsr(Dest, Src0, getPredicate()); |
| 1217 } | 1227 } |
| 1218 } | 1228 } |
| 1219 } | 1229 } |
| 1220 | 1230 |
| 1221 void InstARM32Mov::emitIASSingleDestSingleSource(const Cfg *Func) const { | 1231 void InstARM32Mov::emitIASSingleDestSingleSource(const Cfg *Func) const { |
| 1222 Variable *Dest = getDest(); | 1232 Variable *Dest = getDest(); |
| 1223 Operand *Src0 = getSrc(0); | 1233 Operand *Src0 = getSrc(0); |
| 1224 | 1234 |
| (...skipping 1148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2373 | 2383 |
| 2374 template class InstARM32FourAddrGPR<InstARM32::Mla>; | 2384 template class InstARM32FourAddrGPR<InstARM32::Mla>; |
| 2375 template class InstARM32FourAddrGPR<InstARM32::Mls>; | 2385 template class InstARM32FourAddrGPR<InstARM32::Mls>; |
| 2376 | 2386 |
| 2377 template class InstARM32CmpLike<InstARM32::Cmn>; | 2387 template class InstARM32CmpLike<InstARM32::Cmn>; |
| 2378 template class InstARM32CmpLike<InstARM32::Cmp>; | 2388 template class InstARM32CmpLike<InstARM32::Cmp>; |
| 2379 template class InstARM32CmpLike<InstARM32::Tst>; | 2389 template class InstARM32CmpLike<InstARM32::Tst>; |
| 2380 | 2390 |
| 2381 } // end of namespace ARM32 | 2391 } // end of namespace ARM32 |
| 2382 } // end of namespace Ice | 2392 } // end of namespace Ice |
| OLD | NEW |