| OLD | NEW |
| 1 //===- subzero/src/IceAssemblerARM32.cpp - Assembler for ARM32 --*- C++ -*-===// | 1 //===- subzero/src/IceAssemblerARM32.cpp - Assembler for ARM32 --*- C++ -*-===// |
| 2 // | 2 // |
| 3 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 3 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 4 // for details. All rights reserved. Use of this source code is governed by a | 4 // for details. All rights reserved. Use of this source code is governed by a |
| 5 // BSD-style license that can be found in the LICENSE file. | 5 // BSD-style license that can be found in the LICENSE file. |
| 6 // | 6 // |
| 7 // Modified by the Subzero authors. | 7 // Modified by the Subzero authors. |
| 8 // | 8 // |
| 9 //===----------------------------------------------------------------------===// | 9 //===----------------------------------------------------------------------===// |
| 10 // | 10 // |
| (...skipping 2453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2464 IValueT Dm = encodeDRegister(OpDm, "Dm", Veord); | 2464 IValueT Dm = encodeDRegister(OpDm, "Dm", Veord); |
| 2465 const IValueT Encoding = | 2465 const IValueT Encoding = |
| 2466 B25 | B24 | B8 | B4 | | 2466 B25 | B24 | B8 | B4 | |
| 2467 (encodeCondition(CondARM32::Cond::kNone) << kConditionShift) | | 2467 (encodeCondition(CondARM32::Cond::kNone) << kConditionShift) | |
| 2468 (getYInRegYXXXX(Dd) << 22) | (getXXXXInRegYXXXX(Dn) << 16) | | 2468 (getYInRegYXXXX(Dd) << 22) | (getXXXXInRegYXXXX(Dn) << 16) | |
| 2469 (getXXXXInRegYXXXX(Dd) << 12) | (getYInRegYXXXX(Dn) << 7) | | 2469 (getXXXXInRegYXXXX(Dd) << 12) | (getYInRegYXXXX(Dn) << 7) | |
| 2470 (getYInRegYXXXX(Dm) << 5) | getXXXXInRegYXXXX(Dm); | 2470 (getYInRegYXXXX(Dm) << 5) | getXXXXInRegYXXXX(Dm); |
| 2471 emitInst(Encoding); | 2471 emitInst(Encoding); |
| 2472 } | 2472 } |
| 2473 | 2473 |
| 2474 void AssemblerARM32::veorq(const Operand *OpQd, const Operand *OpQn, |
| 2475 const Operand *OpQm) { |
| 2476 constexpr const char *Veorq = "veorq"; |
| 2477 constexpr IValueT VeorqOpcode = B24 | B8 | B4; |
| 2478 emitSIMDqqq(VeorqOpcode, IceType_i8, OpQd, OpQn, OpQm, Veorq); |
| 2479 } |
| 2480 |
| 2474 void AssemblerARM32::vldrd(const Operand *OpDd, const Operand *OpAddress, | 2481 void AssemblerARM32::vldrd(const Operand *OpDd, const Operand *OpAddress, |
| 2475 CondARM32::Cond Cond, const TargetInfo &TInfo) { | 2482 CondARM32::Cond Cond, const TargetInfo &TInfo) { |
| 2476 // VLDR - ARM section A8.8.333, encoding A1. | 2483 // VLDR - ARM section A8.8.333, encoding A1. |
| 2477 // vldr<c> <Dd>, [<Rn>{, #+/-<imm>}] | 2484 // vldr<c> <Dd>, [<Rn>{, #+/-<imm>}] |
| 2478 // | 2485 // |
| 2479 // cccc1101UD01nnnndddd1011iiiiiiii where cccc=Cond, nnnn=Rn, Ddddd=Rd, | 2486 // cccc1101UD01nnnndddd1011iiiiiiii where cccc=Cond, nnnn=Rn, Ddddd=Rd, |
| 2480 // iiiiiiii=abs(Imm >> 2), and U=1 if Opcode>=0. | 2487 // iiiiiiii=abs(Imm >> 2), and U=1 if Opcode>=0. |
| 2481 constexpr const char *Vldrd = "vldrd"; | 2488 constexpr const char *Vldrd = "vldrd"; |
| 2482 IValueT Dd = encodeDRegister(OpDd, "Dd", Vldrd); | 2489 IValueT Dd = encodeDRegister(OpDd, "Dd", Vldrd); |
| 2483 assert(CondARM32::isDefined(Cond)); | 2490 assert(CondARM32::isDefined(Cond)); |
| (...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2921 constexpr const char *Vsqrts = "vsqrts"; | 2928 constexpr const char *Vsqrts = "vsqrts"; |
| 2922 IValueT Sd = encodeSRegister(OpSd, "Sd", Vsqrts); | 2929 IValueT Sd = encodeSRegister(OpSd, "Sd", Vsqrts); |
| 2923 IValueT Sm = encodeSRegister(OpSm, "Sm", Vsqrts); | 2930 IValueT Sm = encodeSRegister(OpSm, "Sm", Vsqrts); |
| 2924 constexpr IValueT VsqrtsOpcode = B23 | B21 | B20 | B16 | B7 | B6; | 2931 constexpr IValueT VsqrtsOpcode = B23 | B21 | B20 | B16 | B7 | B6; |
| 2925 constexpr IValueT S0 = 0; | 2932 constexpr IValueT S0 = 0; |
| 2926 emitVFPsss(Cond, VsqrtsOpcode, Sd, S0, Sm); | 2933 emitVFPsss(Cond, VsqrtsOpcode, Sd, S0, Sm); |
| 2927 } | 2934 } |
| 2928 | 2935 |
| 2929 } // end of namespace ARM32 | 2936 } // end of namespace ARM32 |
| 2930 } // end of namespace Ice | 2937 } // end of namespace Ice |
| OLD | NEW |