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 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
324 void vpush(const Variable *OpBaseReg, SizeT NumConsecRegs, | 324 void vpush(const Variable *OpBaseReg, SizeT NumConsecRegs, |
325 CondARM32::Cond Cond); | 325 CondARM32::Cond Cond); |
326 | 326 |
327 static bool classof(const Assembler *Asm) { | 327 static bool classof(const Assembler *Asm) { |
328 return Asm->getKind() == Asm_ARM32; | 328 return Asm->getKind() == Asm_ARM32; |
329 } | 329 } |
330 | 330 |
331 void emitTextInst(const std::string &Text, SizeT InstSize); | 331 void emitTextInst(const std::string &Text, SizeT InstSize); |
332 | 332 |
333 private: | 333 private: |
| 334 ENABLE_MAKE_UNIQUE; |
| 335 |
334 // A vector of pool-allocated x86 labels for CFG nodes. | 336 // A vector of pool-allocated x86 labels for CFG nodes. |
335 using LabelVector = std::vector<Label *>; | 337 using LabelVector = std::vector<Label *>; |
336 LabelVector CfgNodeLabels; | 338 LabelVector CfgNodeLabels; |
337 // A vector of pool-allocated x86 labels for Local labels. | 339 // A vector of pool-allocated x86 labels for Local labels. |
338 LabelVector LocalLabels; | 340 LabelVector LocalLabels; |
339 // Number of bytes emitted by InstARM32::emit() methods, when run inside | 341 // Number of bytes emitted by InstARM32::emit() methods, when run inside |
340 // InstARM32::emitUsingTextFixup(). | 342 // InstARM32::emitUsingTextFixup(). |
341 size_t EmitTextSize = 0; | 343 size_t EmitTextSize = 0; |
342 | 344 |
343 // Load/store multiple addressing mode. | 345 // Load/store multiple addressing mode. |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
468 // where cccc=Cond, xxxxxxx<<21=Opcode, dddd=Rd, s=SetFlags, and | 470 // where cccc=Cond, xxxxxxx<<21=Opcode, dddd=Rd, s=SetFlags, and |
469 // iiiiiiiiiiiiiiii=Imm16. | 471 // iiiiiiiiiiiiiiii=Imm16. |
470 void emitMovwt(CondARM32::Cond Cond, bool IsMovw, const Operand *OpRd, | 472 void emitMovwt(CondARM32::Cond Cond, bool IsMovw, const Operand *OpRd, |
471 const Operand *OpSrc, const char *MovName); | 473 const Operand *OpSrc, const char *MovName); |
472 }; | 474 }; |
473 | 475 |
474 } // end of namespace ARM32 | 476 } // end of namespace ARM32 |
475 } // end of namespace Ice | 477 } // end of namespace Ice |
476 | 478 |
477 #endif // SUBZERO_SRC_ICEASSEMBLERARM32_H | 479 #endif // SUBZERO_SRC_ICEASSEMBLERARM32_H |
OLD | NEW |