| 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 440 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 451 DA_W = (0 | 0 | 1) << 21, // decrement after with writeback to base | 451 DA_W = (0 | 0 | 1) << 21, // decrement after with writeback to base |
| 452 IA_W = (0 | 4 | 1) << 21, // increment after with writeback to base | 452 IA_W = (0 | 4 | 1) << 21, // increment after with writeback to base |
| 453 DB_W = (8 | 0 | 1) << 21, // decrement before with writeback to base | 453 DB_W = (8 | 0 | 1) << 21, // decrement before with writeback to base |
| 454 IB_W = (8 | 4 | 1) << 21 // increment before with writeback to base | 454 IB_W = (8 | 4 | 1) << 21 // increment before with writeback to base |
| 455 }; | 455 }; |
| 456 | 456 |
| 457 Label *getOrCreateLabel(SizeT Number, LabelVector &Labels); | 457 Label *getOrCreateLabel(SizeT Number, LabelVector &Labels); |
| 458 | 458 |
| 459 void bindCfgNodeLabel(const CfgNode *Node) override; | 459 void bindCfgNodeLabel(const CfgNode *Node) override; |
| 460 | 460 |
| 461 void emitInst(IValueT Value) { Buffer.emit<IValueT>(Value); } | 461 void emitInst(IValueT Value) { |
| 462 AssemblerBuffer::EnsureCapacity _(&Buffer); |
| 463 Buffer.emit<IValueT>(Value); |
| 464 } |
| 462 | 465 |
| 463 // List of possible checks to apply when calling emitType01() (below). | 466 // List of possible checks to apply when calling emitType01() (below). |
| 464 enum EmitChecks { NoChecks, RdIsPcAndSetFlags }; | 467 enum EmitChecks { NoChecks, RdIsPcAndSetFlags }; |
| 465 | 468 |
| 466 // Pattern cccctttoooosnnnnddddiiiiiiiiiiii where cccc=Cond, ttt=InstType, | 469 // Pattern cccctttoooosnnnnddddiiiiiiiiiiii where cccc=Cond, ttt=InstType, |
| 467 // s=SetFlags, oooo=Opcode, nnnn=Rn, dddd=Rd, iiiiiiiiiiii=imm12 (See ARM | 470 // s=SetFlags, oooo=Opcode, nnnn=Rn, dddd=Rd, iiiiiiiiiiii=imm12 (See ARM |
| 468 // section A5.2.3). | 471 // section A5.2.3). |
| 469 void emitType01(CondARM32::Cond Cond, IValueT InstType, IValueT Opcode, | 472 void emitType01(CondARM32::Cond Cond, IValueT InstType, IValueT Opcode, |
| 470 bool SetFlags, IValueT Rn, IValueT Rd, IValueT imm12, | 473 bool SetFlags, IValueT Rn, IValueT Rd, IValueT imm12, |
| 471 EmitChecks RuleChecks, const char *InstName); | 474 EmitChecks RuleChecks, const char *InstName); |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 581 | 584 |
| 582 // Emit VFP instruction with 3 S registers. | 585 // Emit VFP instruction with 3 S registers. |
| 583 void emitVFPsss(CondARM32::Cond Cond, IValueT Opcode, IValueT Sd, IValueT Sn, | 586 void emitVFPsss(CondARM32::Cond Cond, IValueT Opcode, IValueT Sd, IValueT Sn, |
| 584 IValueT Sm); | 587 IValueT Sm); |
| 585 }; | 588 }; |
| 586 | 589 |
| 587 } // end of namespace ARM32 | 590 } // end of namespace ARM32 |
| 588 } // end of namespace Ice | 591 } // end of namespace Ice |
| 589 | 592 |
| 590 #endif // SUBZERO_SRC_ICEASSEMBLERARM32_H | 593 #endif // SUBZERO_SRC_ICEASSEMBLERARM32_H |
| OLD | NEW |