[INFER] x64 fixes, bug 656920.
authorBrian Hackett <bhackett1024@gmail.com>
Wed, 18 May 2011 09:06:56 -0700
changeset 75072 d3e08103053ba7bc56e02c4dc577cf9be114135c
parent 75071 5d1cbc94bc420bd7b3aff889d8e36d40ba1a3336
child 75073 0b30b3263f8d05a111b5f7192beeade8fcd0a713
push id2
push userbsmedberg@mozilla.com
push dateFri, 19 Aug 2011 14:38:13 +0000
bugs656920
milestone6.0a1
[INFER] x64 fixes, bug 656920.
js/src/jsinfer.cpp
js/src/methodjit/Logging.cpp
js/src/methodjit/StubCalls.cpp
--- a/js/src/jsinfer.cpp
+++ b/js/src/jsinfer.cpp
@@ -4186,17 +4186,17 @@ ScriptAnalysis::printTypes(JSContext *cx
     for (unsigned offset = 0; offset < script->length; offset++) {
         if (!maybeCode(offset))
             continue;
 
         PrintBytecode(cx, script, script->code + offset);
 
         if (js_CodeSpec[script->code[offset]].format & JOF_TYPESET) {
             TypeSet *types = script->bytecodeTypes(script->code + offset);
-            printf("  typeset %u:", types - script->typeArray);
+            printf("  typeset %d:", (int) (types - script->typeArray));
             types->print(cx);
             printf("\n");
         }
 
         unsigned defCount = GetDefCount(script, offset);
         for (unsigned i = 0; i < defCount; i++) {
             printf("  type %d:", i);
             pushedTypes(offset, i)->print(cx);
--- a/js/src/methodjit/Logging.cpp
+++ b/js/src/methodjit/Logging.cpp
@@ -85,18 +85,17 @@ js::JMCheckLogging()
             "  insns         JS opcodes and generated insns\n"
             "  vmframe       VMFrame contents\n"
             "  pics          PIC patching activity\n"
             "  slowcalls     Calls to slow path functions\n"
             "  analysis      LICM and other analysis behavior\n"
             "  regalloc      Register allocation behavior\n"
             "  inlin         Call inlining behavior\n"
             "  recompile     Dynamic recompilations\n"
-            "  full          everything\n"
-            "  notrace       disable trace hints\n"
+            "  full          everything not affecting codegen\n"
             "\n"
         );
         exit(0);
         /*NOTREACHED*/
     }
     if (strstr(env, "abort") || strstr(env, "aborts"))
         LoggingBits |= (1 << uint32(JSpew_Abort));
     if (strstr(env, "scripts"))
@@ -121,17 +120,17 @@ js::JMCheckLogging()
         LoggingBits |= (1 << uint32(JSpew_Analysis));
     if (strstr(env, "regalloc"))
         LoggingBits |= (1 << uint32(JSpew_Regalloc));
     if (strstr(env, "recompile"))
         LoggingBits |= (1 << uint32(JSpew_Recompile));
     if (strstr(env, "inlin"))
         LoggingBits |= (1 << uint32(JSpew_Inlining));
     if (strstr(env, "full"))
-        LoggingBits |= 0xFFFFFFFF;
+        LoggingBits |= 0xFFFFFFFF ^ (1 << JSpew_PCProf);
 }
 
 bool
 js::IsJaegerSpewChannelActive(JaegerSpewChannel channel)
 {
     JS_ASSERT(LoggingChecked);
     return !!(LoggingBits & (1 << uint32(channel)));
 }
--- a/js/src/methodjit/StubCalls.cpp
+++ b/js/src/methodjit/StubCalls.cpp
@@ -2743,17 +2743,17 @@ template void JS_FASTCALL stubs::DelElem
 template void JS_FASTCALL stubs::DelElem<false>(VMFrame &f);
 
 void JS_FASTCALL
 stubs::TypeBarrierHelper(VMFrame &f, uint32 which)
 {
     JS_ASSERT(which == 0 || which == 1);
 
     /* The actual pushed value is at sp[0], fix up the stack. See finishBarrier. */
-    Value &result = f.regs.sp[-1 - which];
+    Value &result = f.regs.sp[-1 - (int)which];
     result = f.regs.sp[0];
 
     /*
      * Prune type barriers at this bytecode if we have added many objects to
      * the target already. This isn't needed if inference results for the
      * script have been destroyed, as we will reanalyze and prune type barriers
      * as they are regenerated.
      */