Merge.
authorDavid Anderson <danderson@mozilla.com>
Thu, 11 Mar 2010 12:19:18 -0800
changeset 40236 8102de796d51514831dde167d5a100c43741227e
parent 40234 9c0125dd3d3b5b1878f3d58b6126d16a3dce3887 (current diff)
parent 40235 663fee37f5c6319cd5d94b49352040ec2d2226cb (diff)
child 40238 51feb4f32a4b14b3218631b3c105ea4c41d24e72
push id12610
push userrsayre@mozilla.com
push dateMon, 05 Apr 2010 17:26:41 +0000
treeherdermozilla-central@1942c0b4e101 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
milestone1.9.3a2pre
Merge.
--- a/js/src/jstracer.cpp
+++ b/js/src/jstracer.cpp
@@ -1243,16 +1243,22 @@ IsSlotUndemotable(Oracle* oracle, JSCont
 {
     if (slot < f->nStackTypes)
         return oracle->isStackSlotUndemotable(cx, slot, ip);
 
     uint16* gslots = f->globalSlots->data();
     return oracle->isGlobalSlotUndemotable(cx, gslots[slot - f->nStackTypes]);
 }
 
+static JS_REQUIRES_STACK bool
+IsSlotUndemotable(Oracle* oracle, JSContext* cx, LinkableFragment* f, unsigned slot)
+{
+    return IsSlotUndemotable(oracle, cx, f, slot, cx->fp->regs->pc);
+}
+
 class FrameInfoCache
 {
     struct HashPolicy
     {
         typedef FrameInfo *Lookup;
         static HashNumber hash(const FrameInfo* fi) {
             size_t len = sizeof(FrameInfo) + fi->callerHeight * sizeof(TraceType);
             HashNumber h = 0;
--- a/js/src/jstracer.h
+++ b/js/src/jstracer.h
@@ -913,25 +913,25 @@ typedef HashMap<nanojit::LIns*, JSObject
 #else
 # define AbortRecording(cx, reason) AbortRecordingImpl(cx)
 #endif
 
 class TraceRecorder
 {
     /*************************************************************** Recording session constants */
 
+    /* Cached oracle keeps track of hit counts for program counter locations */
+    Oracle*                         oracle;
+
     /* The context in which recording started. */
     JSContext* const                cx;
 
     /* Cached value of JS_TRACE_MONITOR(cx). */
     TraceMonitor* const             traceMonitor;
 
-    /* Cached oracle keeps track of hit counts for program counter locations */
-    Oracle*                         oracle;
-
     /* The Fragment being recorded by this recording session. */
     VMFragment* const               fragment;
 
     /* The root fragment representing the tree. */
     TreeFragment* const             tree;
 
     /* The reason we started recording. */
     RecordReason const              recordReason;