Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(61)

Side by Side Diff: src/DartARM32/assembler_arm.h

Issue 1433743002: Add POP instruction to ARM integrated assembler. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Fix nits. Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/DartARM32/assembler_arm.cc » ('j') | src/IceAssemblerARM32.cpp » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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_
OLDNEW
« no previous file with comments | « no previous file | src/DartARM32/assembler_arm.cc » ('j') | src/IceAssemblerARM32.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698