| 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 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 258 void pop(const Operand *OpRt, CondARM32::Cond Cond); | 258 void pop(const Operand *OpRt, CondARM32::Cond Cond); |
| 259 | 259 |
| 260 // Note: Registers is a bitset, where bit n corresponds to register Rn. | 260 // Note: Registers is a bitset, where bit n corresponds to register Rn. |
| 261 void popList(const IValueT Registers, CondARM32::Cond Cond); | 261 void popList(const IValueT Registers, CondARM32::Cond Cond); |
| 262 | 262 |
| 263 void push(const Operand *OpRt, CondARM32::Cond Cond); | 263 void push(const Operand *OpRt, CondARM32::Cond Cond); |
| 264 | 264 |
| 265 // Note: Registers is a bitset, where bit n corresponds to register Rn. | 265 // Note: Registers is a bitset, where bit n corresponds to register Rn. |
| 266 void pushList(const IValueT Registers, CondARM32::Cond Cond); | 266 void pushList(const IValueT Registers, CondARM32::Cond Cond); |
| 267 | 267 |
| 268 void rev(const Operand *OpRd, const Operand *OpSrc, CondARM32::Cond Cond); | 268 void rbit(const Operand *OpRd, const Operand *OpRm, CondARM32::Cond Cond); |
| 269 |
| 270 void rev(const Operand *OpRd, const Operand *OpRm, CondARM32::Cond Cond); |
| 269 | 271 |
| 270 void rsb(const Operand *OpRd, const Operand *OpRn, const Operand *OpSrc1, | 272 void rsb(const Operand *OpRd, const Operand *OpRn, const Operand *OpSrc1, |
| 271 bool SetFlags, CondARM32::Cond Cond); | 273 bool SetFlags, CondARM32::Cond Cond); |
| 272 | 274 |
| 273 void rsc(const Operand *OpRd, const Operand *OpRn, const Operand *OpSrc1, | 275 void rsc(const Operand *OpRd, const Operand *OpRn, const Operand *OpSrc1, |
| 274 bool SetFlags, CondARM32::Cond Cond); | 276 bool SetFlags, CondARM32::Cond Cond); |
| 275 | 277 |
| 276 void sbc(const Operand *OpRd, const Operand *OpRn, const Operand *OpSrc1, | 278 void sbc(const Operand *OpRd, const Operand *OpRn, const Operand *OpSrc1, |
| 277 bool SetFlags, CondARM32::Cond Cond); | 279 bool SetFlags, CondARM32::Cond Cond); |
| 278 | 280 |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 377 const char *InstName); | 379 const char *InstName); |
| 378 | 380 |
| 379 // Emit ccccoooaabalnnnnttttaaaaaaaaaaaa where cccc=Cond, | 381 // Emit ccccoooaabalnnnnttttaaaaaaaaaaaa where cccc=Cond, |
| 380 // ooo=InstType, l=isLoad, b=isByte, and | 382 // ooo=InstType, l=isLoad, b=isByte, and |
| 381 // aaa0a0aaaa0000aaaaaaaaaaaa=Address. Note that Address is assumed to be | 383 // aaa0a0aaaa0000aaaaaaaaaaaa=Address. Note that Address is assumed to be |
| 382 // defined by decodeAddress() in IceAssemblerARM32.cpp. | 384 // defined by decodeAddress() in IceAssemblerARM32.cpp. |
| 383 void emitMemOp(CondARM32::Cond Cond, IValueT InstType, bool IsLoad, | 385 void emitMemOp(CondARM32::Cond Cond, IValueT InstType, bool IsLoad, |
| 384 bool IsByte, IValueT Rt, IValueT Address, | 386 bool IsByte, IValueT Rt, IValueT Address, |
| 385 const char *InstName); | 387 const char *InstName); |
| 386 | 388 |
| 389 // Emit ccccxxxxxxxxxxxxddddxxxxxxxxmmmm where cccc=Cond, |
| 390 // xxxxxxxxxxxx0000xxxxxxxx0000=Opcode, dddd=Rd, and mmmm=Rm. |
| 391 void emitRdRm(CondARM32::Cond Cond, IValueT Opcode, const Operand *OpRd, |
| 392 const Operand *OpRm, const char *InstName); |
| 393 |
| 387 // Emit ldr/ldrb/str/strb instruction with given address. | 394 // Emit ldr/ldrb/str/strb instruction with given address. |
| 388 void emitMemOp(CondARM32::Cond Cond, bool IsLoad, bool IsByte, IValueT Rt, | 395 void emitMemOp(CondARM32::Cond Cond, bool IsLoad, bool IsByte, IValueT Rt, |
| 389 const Operand *OpAddress, const TargetInfo &TInfo, | 396 const Operand *OpAddress, const TargetInfo &TInfo, |
| 390 const char *InstName); | 397 const char *InstName); |
| 391 | 398 |
| 392 // Emit ldrh/ldrd/strh/strd instruction with given address using encoding 3. | 399 // Emit ldrh/ldrd/strh/strd instruction with given address using encoding 3. |
| 393 void emitMemOpEnc3(CondARM32::Cond Cond, IValueT Opcode, IValueT Rt, | 400 void emitMemOpEnc3(CondARM32::Cond Cond, IValueT Opcode, IValueT Rt, |
| 394 const Operand *OpAddress, const TargetInfo &TInfo, | 401 const Operand *OpAddress, const TargetInfo &TInfo, |
| 395 const char *InstName); | 402 const char *InstName); |
| 396 | 403 |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 449 // where cccc=Cond, xxxxxxx<<21=Opcode, dddd=Rd, s=SetFlags, and | 456 // where cccc=Cond, xxxxxxx<<21=Opcode, dddd=Rd, s=SetFlags, and |
| 450 // iiiiiiiiiiiiiiii=Imm16. | 457 // iiiiiiiiiiiiiiii=Imm16. |
| 451 void emitMovwt(CondARM32::Cond Cond, bool IsMovw, const Operand *OpRd, | 458 void emitMovwt(CondARM32::Cond Cond, bool IsMovw, const Operand *OpRd, |
| 452 const Operand *OpSrc, const char *MovName); | 459 const Operand *OpSrc, const char *MovName); |
| 453 }; | 460 }; |
| 454 | 461 |
| 455 } // end of namespace ARM32 | 462 } // end of namespace ARM32 |
| 456 } // end of namespace Ice | 463 } // end of namespace Ice |
| 457 | 464 |
| 458 #endif // SUBZERO_SRC_ICEASSEMBLERARM32_H | 465 #endif // SUBZERO_SRC_ICEASSEMBLERARM32_H |
| OLD | NEW |