| 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 670 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 681 AssemblerARM32::createBlFixup(const ConstantRelocatable *BlTarget) { | 681 AssemblerARM32::createBlFixup(const ConstantRelocatable *BlTarget) { |
| 682 BlRelocatableFixup *F = | 682 BlRelocatableFixup *F = |
| 683 new (allocate<BlRelocatableFixup>()) BlRelocatableFixup(); | 683 new (allocate<BlRelocatableFixup>()) BlRelocatableFixup(); |
| 684 F->set_kind(llvm::ELF::R_ARM_CALL); | 684 F->set_kind(llvm::ELF::R_ARM_CALL); |
| 685 F->set_value(BlTarget); | 685 F->set_value(BlTarget); |
| 686 Buffer.installFixup(F); | 686 Buffer.installFixup(F); |
| 687 return F; | 687 return F; |
| 688 } | 688 } |
| 689 | 689 |
| 690 void AssemblerARM32::bindCfgNodeLabel(const CfgNode *Node) { | 690 void AssemblerARM32::bindCfgNodeLabel(const CfgNode *Node) { |
| 691 GlobalContext *Ctx = Node->getCfg()->getContext(); | 691 if (BuildDefs::dump() && !getFlags().getDisableHybridAssembly()) { |
| 692 if (BuildDefs::dump() && !Ctx->getFlags().getDisableHybridAssembly()) { | |
| 693 // Generate label name so that branches can find it. | 692 // Generate label name so that branches can find it. |
| 694 constexpr SizeT InstSize = 0; | 693 constexpr SizeT InstSize = 0; |
| 695 emitTextInst(Node->getAsmName() + ":", InstSize); | 694 emitTextInst(Node->getAsmName() + ":", InstSize); |
| 696 } | 695 } |
| 697 SizeT NodeNumber = Node->getIndex(); | 696 SizeT NodeNumber = Node->getIndex(); |
| 698 assert(!getPreliminary()); | 697 assert(!getPreliminary()); |
| 699 Label *L = getOrCreateCfgNodeLabel(NodeNumber); | 698 Label *L = getOrCreateCfgNodeLabel(NodeNumber); |
| 700 this->bind(L); | 699 this->bind(L); |
| 701 } | 700 } |
| 702 | 701 |
| (...skipping 2498 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3201 constexpr const char *Vsqrts = "vsqrts"; | 3200 constexpr const char *Vsqrts = "vsqrts"; |
| 3202 IValueT Sd = encodeSRegister(OpSd, "Sd", Vsqrts); | 3201 IValueT Sd = encodeSRegister(OpSd, "Sd", Vsqrts); |
| 3203 IValueT Sm = encodeSRegister(OpSm, "Sm", Vsqrts); | 3202 IValueT Sm = encodeSRegister(OpSm, "Sm", Vsqrts); |
| 3204 constexpr IValueT VsqrtsOpcode = B23 | B21 | B20 | B16 | B7 | B6; | 3203 constexpr IValueT VsqrtsOpcode = B23 | B21 | B20 | B16 | B7 | B6; |
| 3205 constexpr IValueT S0 = 0; | 3204 constexpr IValueT S0 = 0; |
| 3206 emitVFPsss(Cond, VsqrtsOpcode, Sd, S0, Sm); | 3205 emitVFPsss(Cond, VsqrtsOpcode, Sd, S0, Sm); |
| 3207 } | 3206 } |
| 3208 | 3207 |
| 3209 } // end of namespace ARM32 | 3208 } // end of namespace ARM32 |
| 3210 } // end of namespace Ice | 3209 } // end of namespace Ice |
| OLD | NEW |