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

Unified Diff: runtime/vm/raw_object.h

Issue 875443002: Store pc offset instead of absolute pc in the pc descriptors. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: fixed arm/mips/arm64 build Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/object_test.cc ('k') | runtime/vm/simulator_arm.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/raw_object.h
===================================================================
--- runtime/vm/raw_object.h (revision 43041)
+++ runtime/vm/raw_object.h (working copy)
@@ -1021,8 +1021,11 @@
// Compressed version assumes try_index is always -1 and does not store it.
struct PcDescriptorRec {
- uword pc() const { return pc_; }
- void set_pc(uword value) { pc_ = value; }
+ uword pc_offset() const { return pc_offset_; }
+ void set_pc_offset(uword value) {
+ ASSERT((sizeof(value) == 4) || Utils::IsUint(32, value));
+ pc_offset_ = value;
+ }
Kind kind() const {
return static_cast<Kind>(deopt_id_and_kind_ & kAnyKind);
@@ -1057,7 +1060,7 @@
return (token_pos_ & 0x1) == 1;
}
- uword pc_;
+ uint32_t pc_offset_;
int32_t deopt_id_and_kind_; // Bits 31..8 -> deopt_id, bits 7..0 kind.
int32_t token_pos_; // Bits 31..1 -> token_pos, bit 1 -> compressed flag;
int16_t try_index_;
@@ -1066,7 +1069,7 @@
// This structure is only used to compute what the size of PcDescriptorRec
// should be when the try_index_ field is omitted.
struct CompressedPcDescriptorRec {
- uword pc_;
+ uint32_t pc_offset_;
int32_t deopt_id_and_kind_;
int32_t token_pos_;
};
« no previous file with comments | « runtime/vm/object_test.cc ('k') | runtime/vm/simulator_arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698