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

Unified Diff: runtime/vm/isolate.h

Issue 10968059: Support for unboxed 64-bit integer bitwise operations and equality on ia32. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 3 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
Index: runtime/vm/isolate.h
===================================================================
--- runtime/vm/isolate.h (revision 12765)
+++ runtime/vm/isolate.h (working copy)
@@ -32,6 +32,8 @@
class RawArray;
class RawContext;
class RawDouble;
+class RawMint;
+class RawInteger;
class RawError;
class StackResource;
class StubCode;
@@ -59,6 +61,24 @@
};
+class DeferredMint {
+ public:
+ DeferredMint(int64_t value, RawInteger** slot, DeferredMint* next)
+ : value_(value), slot_(slot), next_(next) { }
+
+ int64_t value() const { return value_; }
+ RawInteger** slot() const { return slot_; }
+ DeferredMint* next() const { return next_; }
+
+ private:
+ const int64_t value_;
+ RawInteger** const slot_;
+ DeferredMint* const next_;
+
+ DISALLOW_COPY_AND_ASSIGN(DeferredMint);
+};
+
+
class Isolate : public BaseIsolate {
public:
~Isolate();
@@ -267,16 +287,25 @@
intptr_t deopt_frame_copy_size() const { return deopt_frame_copy_size_; }
void DeferDoubleMaterialization(double value, RawDouble** slot) {
- deferred_doubles_ = new DeferredDouble(
- value, slot, deferred_doubles_);
+ deferred_doubles_ = new DeferredDouble(value, slot, deferred_doubles_);
}
+ void DeferMintMaterialization(int64_t value, RawInteger** slot) {
+ deferred_mints_ = new DeferredMint(value, slot, deferred_mints_);
+ }
+
DeferredDouble* DetachDeferredDoubles() {
DeferredDouble* list = deferred_doubles_;
deferred_doubles_ = NULL;
return list;
}
+ DeferredMint* DetachDeferredMints() {
+ DeferredMint* list = deferred_mints_;
+ deferred_mints_ = NULL;
+ return list;
+ }
+
private:
Isolate();
@@ -321,6 +350,7 @@
intptr_t* deopt_frame_copy_;
intptr_t deopt_frame_copy_size_;
DeferredDouble* deferred_doubles_;
+ DeferredMint* deferred_mints_;
static Dart_IsolateCreateCallback create_callback_;
static Dart_IsolateInterruptCallback interrupt_callback_;

Powered by Google App Engine
This is Rietveld 408576698