diff src/share/vm/c1x/c1x_CodeInstaller.cpp @ 1470:ef7761803480

Fixes to get running again after C1X changes to pointer maps and register configuration.
author Thomas Wuerthinger <wuerthinger@ssw.jku.at>
date Tue, 23 Nov 2010 15:45:45 +0100
parents 52bb06250d35
children cd18e3072ea5
line wrap: on
line diff
--- a/src/share/vm/c1x/c1x_CodeInstaller.cpp	Fri Nov 19 21:16:36 2010 +0100
+++ b/src/share/vm/c1x/c1x_CodeInstaller.cpp	Tue Nov 23 15:45:45 2010 +0100
@@ -47,16 +47,16 @@
 }
 
 static bool is_bit_set(oop bit_map, int i) {
-  if (i < 64) {
+  const int MapWordBits = 64;
+  if (i < MapWordBits) {
     jlong low = CiBitMap::low(bit_map);
-    return (low & (1 << i)) != 0;
+    return (low & (1L << i)) != 0;
   } else {
-    const unsigned int MapWordBits = 64;
     jint extra_idx = (i - MapWordBits) / MapWordBits;
     arrayOop extra = (arrayOop) CiBitMap::extra(bit_map);
     assert(extra_idx >= 0 && extra_idx < extra->length(), "unexpected index");
     jlong word = ((jlong*) extra->base(T_LONG))[extra_idx];
-    return (word & (1 << (i % MapWordBits))) != 0;
+    return (word & (1L << (i % MapWordBits))) != 0;
   }
 }
 
@@ -88,6 +88,7 @@
       // hotspot stack slots are 4 bytes
       VMReg reg = VMRegImpl::stack2reg(i * 2);
       if (is_oop) {
+        tty->print_cr("oop is set at %d (%d)", i, i*8);
         map->set_oop(reg);
       } else {
         map->set_value(reg);