| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 // | 4 // |
| 5 // This is forked from Dart revision df52deea9f25690eb8b66c5995da92b70f7ac1fe | 5 // This is forked from Dart revision df52deea9f25690eb8b66c5995da92b70f7ac1fe |
| 6 // Please update the (git) revision if we merge changes from Dart. | 6 // Please update the (git) revision if we merge changes from Dart. |
| 7 // https://code.google.com/p/dart/wiki/GettingTheSource | 7 // https://code.google.com/p/dart/wiki/GettingTheSource |
| 8 | 8 |
| 9 #ifndef VM_ASSEMBLER_ARM_H_ | 9 #ifndef VM_ASSEMBLER_ARM_H_ |
| 10 #define VM_ASSEMBLER_ARM_H_ | 10 #define VM_ASSEMBLER_ARM_H_ |
| (...skipping 558 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 569 | 569 |
| 570 void ldrsb(Register rd, Address ad, Condition cond = AL); | 570 void ldrsb(Register rd, Address ad, Condition cond = AL); |
| 571 void ldrsh(Register rd, Address ad, Condition cond = AL); | 571 void ldrsh(Register rd, Address ad, Condition cond = AL); |
| 572 | 572 |
| 573 // ldrd and strd actually support the full range of addressing modes, but | 573 // ldrd and strd actually support the full range of addressing modes, but |
| 574 // we don't use them, and we need to split them up into two instructions for | 574 // we don't use them, and we need to split them up into two instructions for |
| 575 // ARMv5TE, so we only support the base + offset mode. | 575 // ARMv5TE, so we only support the base + offset mode. |
| 576 void ldrd(Register rd, Register rn, int32_t offset, Condition cond = AL); | 576 void ldrd(Register rd, Register rn, int32_t offset, Condition cond = AL); |
| 577 void strd(Register rd, Register rn, int32_t offset, Condition cond = AL); | 577 void strd(Register rd, Register rn, int32_t offset, Condition cond = AL); |
| 578 | 578 |
| 579 #if 0 |
| 580 // Folded into ARM32::AssemblerARM32::popList(), since it is its only use (and |
| 581 // doesn't implement ARM LDM instructions). |
| 579 void ldm(BlockAddressMode am, Register base, | 582 void ldm(BlockAddressMode am, Register base, |
| 580 RegList regs, Condition cond = AL); | 583 RegList regs, Condition cond = AL); |
| 581 #if 0 | 584 |
| 582 // Folded into ARM32::AssemblerARM32::pushList(), since it is its only | 585 // Folded into ARM32::AssemblerARM32::pushList(), since it is its only use |
| 583 // use (and doesn't implement ARM STM instruction). | 586 // (and doesn't implement ARM STM instruction). |
| 584 void stm(BlockAddressMode am, Register base, | 587 void stm(BlockAddressMode am, Register base, |
| 585 RegList regs, Condition cond = AL); | 588 RegList regs, Condition cond = AL); |
| 586 #endif | 589 #endif |
| 587 | 590 |
| 588 void ldrex(Register rd, Register rn, Condition cond = AL); | 591 void ldrex(Register rd, Register rn, Condition cond = AL); |
| 589 void strex(Register rd, Register rt, Register rn, Condition cond = AL); | 592 void strex(Register rd, Register rt, Register rn, Condition cond = AL); |
| 590 | 593 |
| 591 // Miscellaneous instructions. | 594 // Miscellaneous instructions. |
| 592 void clrex(); | 595 void clrex(); |
| 593 void nop(Condition cond = AL); | 596 void nop(Condition cond = AL); |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 929 void CopyDoubleField(Register dst, Register src, | 932 void CopyDoubleField(Register dst, Register src, |
| 930 Register tmp1, Register tmp2, DRegister dtmp); | 933 Register tmp1, Register tmp2, DRegister dtmp); |
| 931 void CopyFloat32x4Field(Register dst, Register src, | 934 void CopyFloat32x4Field(Register dst, Register src, |
| 932 Register tmp1, Register tmp2, DRegister dtmp); | 935 Register tmp1, Register tmp2, DRegister dtmp); |
| 933 void CopyFloat64x2Field(Register dst, Register src, | 936 void CopyFloat64x2Field(Register dst, Register src, |
| 934 Register tmp1, Register tmp2, DRegister dtmp); | 937 Register tmp1, Register tmp2, DRegister dtmp); |
| 935 | 938 |
| 936 #if 0 | 939 #if 0 |
| 937 // Moved to ARM32::AssemblerARM32::push(). | 940 // Moved to ARM32::AssemblerARM32::push(). |
| 938 void Push(Register rd, Condition cond = AL); | 941 void Push(Register rd, Condition cond = AL); |
| 939 #endif | 942 |
| 943 // Moved to ARM32::AssemblerARM32::pop(). |
| 940 void Pop(Register rd, Condition cond = AL); | 944 void Pop(Register rd, Condition cond = AL); |
| 941 | 945 |
| 942 #if 0 | 946 // Moved to ARM32::AssemblerARM32::pushList(). |
| 943 // Moved to ARM32::AssemblerARM32::pushList(); | |
| 944 void PushList(RegList regs, Condition cond = AL); | 947 void PushList(RegList regs, Condition cond = AL); |
| 948 |
| 949 // Moved to ARM32::AssemblerARM32::popList(). |
| 950 void PopList(RegList regs, Condition cond = AL); |
| 945 #endif | 951 #endif |
| 946 void PopList(RegList regs, Condition cond = AL); | |
| 947 | |
| 948 void MoveRegister(Register rd, Register rm, Condition cond = AL); | 952 void MoveRegister(Register rd, Register rm, Condition cond = AL); |
| 949 | 953 |
| 950 // Convenience shift instructions. Use mov instruction with shifter operand | 954 // Convenience shift instructions. Use mov instruction with shifter operand |
| 951 // for variants setting the status flags. | 955 // for variants setting the status flags. |
| 952 void Lsl(Register rd, Register rm, const Operand& shift_imm, | 956 void Lsl(Register rd, Register rm, const Operand& shift_imm, |
| 953 Condition cond = AL); | 957 Condition cond = AL); |
| 954 void Lsl(Register rd, Register rm, Register rs, Condition cond = AL); | 958 void Lsl(Register rd, Register rm, Register rs, Condition cond = AL); |
| 955 void Lsr(Register rd, Register rm, const Operand& shift_imm, | 959 void Lsr(Register rd, Register rm, const Operand& shift_imm, |
| 956 Condition cond = AL); | 960 Condition cond = AL); |
| 957 void Lsr(Register rd, Register rm, Register rs, Condition cond = AL); | 961 void Lsr(Register rd, Register rm, Register rs, Condition cond = AL); |
| (...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1297 Register new_value, | 1301 Register new_value, |
| 1298 FieldContent old_content); | 1302 FieldContent old_content); |
| 1299 | 1303 |
| 1300 DISALLOW_ALLOCATION(); | 1304 DISALLOW_ALLOCATION(); |
| 1301 DISALLOW_COPY_AND_ASSIGN(Assembler); | 1305 DISALLOW_COPY_AND_ASSIGN(Assembler); |
| 1302 }; | 1306 }; |
| 1303 | 1307 |
| 1304 } // namespace dart | 1308 } // namespace dart |
| 1305 | 1309 |
| 1306 #endif // VM_ASSEMBLER_ARM_H_ | 1310 #endif // VM_ASSEMBLER_ARM_H_ |
| OLD | NEW |