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

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

Issue 12398029: Remove the barely used macro assemblers after merging their contents to the base (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | runtime/vm/assembler_arm.cc » ('j') | runtime/vm/assembler_ia32.h » ('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 #ifndef VM_ASSEMBLER_ARM_H_ 5 #ifndef VM_ASSEMBLER_ARM_H_
6 #define VM_ASSEMBLER_ARM_H_ 6 #define VM_ASSEMBLER_ARM_H_
7 7
8 #ifndef VM_ASSEMBLER_H_ 8 #ifndef VM_ASSEMBLER_H_
9 #error Do not include assembler_arm.h directly; use assembler.h instead. 9 #error Do not include assembler_arm.h directly; use assembler.h instead.
10 #endif 10 #endif
(...skipping 575 matching lines...) Expand 10 before | Expand all | Expand 10 after
586 void ReserveAlignedFrameSpace(intptr_t frame_space); 586 void ReserveAlignedFrameSpace(intptr_t frame_space);
587 587
588 // Create a frame for calling into runtime that preserves all volatile 588 // Create a frame for calling into runtime that preserves all volatile
589 // registers. Frame's SP is guaranteed to be correctly aligned and 589 // registers. Frame's SP is guaranteed to be correctly aligned and
590 // frame_space bytes are reserved under it. 590 // frame_space bytes are reserved under it.
591 void EnterCallRuntimeFrame(intptr_t frame_space); 591 void EnterCallRuntimeFrame(intptr_t frame_space);
592 void LeaveCallRuntimeFrame(); 592 void LeaveCallRuntimeFrame();
593 593
594 void CallRuntime(const RuntimeEntry& entry); 594 void CallRuntime(const RuntimeEntry& entry);
595 595
596 // Set up a dart frame on entry with a frame pointer and PC information to
srdjan 2013/03/04 23:46:43 s/dart/Dart/
regis 2013/03/04 23:51:24 Done.
597 // enable easy access to the RawInstruction object of code corresponding
598 // to this frame.
599 void EnterDartFrame(intptr_t frame_size);
600 void LeaveDartFrame();
601
602 // Set up a stub frame so that the stack traversal code can easily identify
603 // a stub frame.
604 void EnterStubFrame();
605 void LeaveStubFrame();
606
607 // Instruction pattern from entrypoint is used in dart frame prologs
srdjan 2013/03/04 23:46:43 ditto
regis 2013/03/04 23:51:24 Done.
608 // to set up the frame and save a PC which can be used to figure out the
609 // RawInstruction object corresponding to the code running in the frame.
610 static const intptr_t kOffsetOfSavedPCfromEntrypoint = Instr::kPCReadOffset;
611
612 // Inlined allocation of an instance of class 'cls', code has no runtime
613 // calls. Jump to 'failure' if the instance cannot be allocated here.
614 // Allocated instance is returned in 'instance_reg'.
615 // Only the tags field of the object is initialized.
616 void TryAllocate(const Class& cls,
617 Label* failure,
618 bool near_jump,
619 Register instance_reg);
620
596 // Emit data (e.g encoded instruction or immediate) in instruction stream. 621 // Emit data (e.g encoded instruction or immediate) in instruction stream.
597 void Emit(int32_t value); 622 void Emit(int32_t value);
598 623
599 private: 624 private:
600 AssemblerBuffer buffer_; // Contains position independent code. 625 AssemblerBuffer buffer_; // Contains position independent code.
601 GrowableObjectArray& object_pool_; // Objects and patchable jump targets. 626 GrowableObjectArray& object_pool_; // Objects and patchable jump targets.
602 int32_t prologue_offset_; 627 int32_t prologue_offset_;
603 628
604 int32_t AddObject(const Object& obj); 629 int32_t AddObject(const Object& obj);
605 int32_t AddExternalLabel(const ExternalLabel* label); 630 int32_t AddExternalLabel(const ExternalLabel* label);
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
714 return *reg1 - *reg2; 739 return *reg1 - *reg2;
715 } 740 }
716 741
717 DISALLOW_ALLOCATION(); 742 DISALLOW_ALLOCATION();
718 DISALLOW_COPY_AND_ASSIGN(Assembler); 743 DISALLOW_COPY_AND_ASSIGN(Assembler);
719 }; 744 };
720 745
721 } // namespace dart 746 } // namespace dart
722 747
723 #endif // VM_ASSEMBLER_ARM_H_ 748 #endif // VM_ASSEMBLER_ARM_H_
OLDNEW
« no previous file with comments | « no previous file | runtime/vm/assembler_arm.cc » ('j') | runtime/vm/assembler_ia32.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698