| OLD | NEW | 
|---|
| 1 //===- subzero/src/IceAssemblerARM32.h - Assembler for ARM32 ----*- C++ -*-===// | 1 //===- subzero/src/IceAssemblerARM32.h - 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 77 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 88   public: | 88   public: | 
| 89     TargetInfo(bool HasFramePointer, SizeT FrameOrStackReg) | 89     TargetInfo(bool HasFramePointer, SizeT FrameOrStackReg) | 
| 90         : HasFramePointer(HasFramePointer), FrameOrStackReg(FrameOrStackReg) {} | 90         : HasFramePointer(HasFramePointer), FrameOrStackReg(FrameOrStackReg) {} | 
| 91     explicit TargetInfo(const TargetLowering *Target) | 91     explicit TargetInfo(const TargetLowering *Target) | 
| 92         : HasFramePointer(Target->hasFramePointer()), | 92         : HasFramePointer(Target->hasFramePointer()), | 
| 93           FrameOrStackReg(Target->getFrameOrStackReg()) {} | 93           FrameOrStackReg(Target->getFrameOrStackReg()) {} | 
| 94     const bool HasFramePointer; | 94     const bool HasFramePointer; | 
| 95     const SizeT FrameOrStackReg; | 95     const SizeT FrameOrStackReg; | 
| 96   }; | 96   }; | 
| 97 | 97 | 
| 98   explicit AssemblerARM32(bool use_far_branches = false) | 98   explicit AssemblerARM32(bool IsNonsfi, bool use_far_branches = false) | 
| 99       : Assembler(Asm_ARM32) { | 99       : Assembler(Asm_ARM32), IsNonsfi(IsNonsfi) { | 
| 100     // TODO(kschimpf): Add mode if needed when branches are handled. | 100     // TODO(kschimpf): Add mode if needed when branches are handled. | 
| 101     (void)use_far_branches; | 101     (void)use_far_branches; | 
| 102   } | 102   } | 
| 103   ~AssemblerARM32() override { | 103   ~AssemblerARM32() override { | 
| 104     if (BuildDefs::asserts()) { | 104     if (BuildDefs::asserts()) { | 
| 105       for (const Label *Label : CfgNodeLabels) { | 105       for (const Label *Label : CfgNodeLabels) { | 
| 106         Label->finalCheck(); | 106         Label->finalCheck(); | 
| 107       } | 107       } | 
| 108       for (const Label *Label : LocalLabels) { | 108       for (const Label *Label : LocalLabels) { | 
| 109         Label->finalCheck(); | 109         Label->finalCheck(); | 
| (...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 520 | 520 | 
| 521   static bool classof(const Assembler *Asm) { | 521   static bool classof(const Assembler *Asm) { | 
| 522     return Asm->getKind() == Asm_ARM32; | 522     return Asm->getKind() == Asm_ARM32; | 
| 523   } | 523   } | 
| 524 | 524 | 
| 525   void emitTextInst(const std::string &Text, SizeT InstSize); | 525   void emitTextInst(const std::string &Text, SizeT InstSize); | 
| 526 | 526 | 
| 527 private: | 527 private: | 
| 528   ENABLE_MAKE_UNIQUE; | 528   ENABLE_MAKE_UNIQUE; | 
| 529 | 529 | 
|  | 530   const bool IsNonsfi; | 
|  | 531 | 
| 530   // A vector of pool-allocated x86 labels for CFG nodes. | 532   // A vector of pool-allocated x86 labels for CFG nodes. | 
| 531   using LabelVector = std::vector<Label *>; | 533   using LabelVector = std::vector<Label *>; | 
| 532   LabelVector CfgNodeLabels; | 534   LabelVector CfgNodeLabels; | 
| 533   // A vector of pool-allocated x86 labels for Local labels. | 535   // A vector of pool-allocated x86 labels for Local labels. | 
| 534   LabelVector LocalLabels; | 536   LabelVector LocalLabels; | 
| 535   // Number of bytes emitted by InstARM32::emit() methods, when run inside | 537   // Number of bytes emitted by InstARM32::emit() methods, when run inside | 
| 536   // InstARM32::emitUsingTextFixup(). | 538   // InstARM32::emitUsingTextFixup(). | 
| 537   size_t EmitTextSize = 0; | 539   size_t EmitTextSize = 0; | 
| 538 | 540 | 
| 539   // Load/store multiple addressing mode. | 541   // Load/store multiple addressing mode. | 
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 705 | 707 | 
| 706   void emitVFPsss(CondARM32::Cond Cond, IValueT Opcode, const Operand *OpSd, | 708   void emitVFPsss(CondARM32::Cond Cond, IValueT Opcode, const Operand *OpSd, | 
| 707                   const Operand *OpSn, const Operand *OpSm, | 709                   const Operand *OpSn, const Operand *OpSm, | 
| 708                   const char *InstName); | 710                   const char *InstName); | 
| 709 }; | 711 }; | 
| 710 | 712 | 
| 711 } // end of namespace ARM32 | 713 } // end of namespace ARM32 | 
| 712 } // end of namespace Ice | 714 } // end of namespace Ice | 
| 713 | 715 | 
| 714 #endif // SUBZERO_SRC_ICEASSEMBLERARM32_H | 716 #endif // SUBZERO_SRC_ICEASSEMBLERARM32_H | 
| OLD | NEW | 
|---|