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

Side by Side Diff: runtime/vm/assembler_ia32.h

Issue 2856543002: Use off-heap data for class check instructions (Closed)
Patch Set: Feedback from Slava: rejig inheritance of CallTargets Created 3 years, 7 months 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
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 #ifndef RUNTIME_VM_ASSEMBLER_IA32_H_ 5 #ifndef RUNTIME_VM_ASSEMBLER_IA32_H_
6 #define RUNTIME_VM_ASSEMBLER_IA32_H_ 6 #define RUNTIME_VM_ASSEMBLER_IA32_H_
7 7
8 #ifndef RUNTIME_VM_ASSEMBLER_H_ 8 #ifndef RUNTIME_VM_ASSEMBLER_H_
9 #error Do not include assembler_ia32.h directly; use assembler.h instead. 9 #error Do not include assembler_ia32.h directly; use assembler.h instead.
10 #endif 10 #endif
(...skipping 742 matching lines...) Expand 10 before | Expand all | Expand 10 after
753 */ 753 */
754 void SmiTag(Register reg) { addl(reg, reg); } 754 void SmiTag(Register reg) { addl(reg, reg); }
755 755
756 void SmiUntag(Register reg) { sarl(reg, Immediate(kSmiTagSize)); } 756 void SmiUntag(Register reg) { sarl(reg, Immediate(kSmiTagSize)); }
757 757
758 void BranchIfNotSmi(Register reg, Label* label) { 758 void BranchIfNotSmi(Register reg, Label* label) {
759 testl(reg, Immediate(kSmiTagMask)); 759 testl(reg, Immediate(kSmiTagMask));
760 j(NOT_ZERO, label); 760 j(NOT_ZERO, label);
761 } 761 }
762 762
763 void BranchIfSmi(Register reg, Label* label) {
764 testl(reg, Immediate(kSmiTagMask));
765 j(ZERO, label);
766 }
767
763 void Align(intptr_t alignment, intptr_t offset); 768 void Align(intptr_t alignment, intptr_t offset);
764 void Bind(Label* label); 769 void Bind(Label* label);
765 void Jump(Label* label) { jmp(label); } 770 void Jump(Label* label) { jmp(label); }
766 771
767 // Address of code at offset. 772 // Address of code at offset.
768 uword CodeAddress(intptr_t offset) { return buffer_.Address(offset); } 773 uword CodeAddress(intptr_t offset) { return buffer_.Address(offset); }
769 774
770 intptr_t CodeSize() const { return buffer_.Size(); } 775 intptr_t CodeSize() const { return buffer_.Size(); }
771 intptr_t prologue_offset() const { return prologue_offset_; } 776 intptr_t prologue_offset() const { return prologue_offset_; }
772 bool has_single_entry_point() const { return true; } 777 bool has_single_entry_point() const { return true; }
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
1002 } 1007 }
1003 1008
1004 1009
1005 inline void Assembler::EmitOperandSizeOverride() { 1010 inline void Assembler::EmitOperandSizeOverride() {
1006 EmitUint8(0x66); 1011 EmitUint8(0x66);
1007 } 1012 }
1008 1013
1009 } // namespace dart 1014 } // namespace dart
1010 1015
1011 #endif // RUNTIME_VM_ASSEMBLER_IA32_H_ 1016 #endif // RUNTIME_VM_ASSEMBLER_IA32_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698