[vmkit-commits] [vmkit] r85570 - /vmkit/trunk/mmtk/mmtk-j3/ObjectModel.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Thu Oct 29 19:03:39 PDT 2009


Author: geoffray
Date: Thu Oct 29 21:03:38 2009
New Revision: 85570

URL: http://llvm.org/viewvc/llvm-project?rev=85570&view=rev
Log:
Protect last yte by just giving the GC infos to the GC.


Modified:
    vmkit/trunk/mmtk/mmtk-j3/ObjectModel.cpp

Modified: vmkit/trunk/mmtk/mmtk-j3/ObjectModel.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-j3/ObjectModel.cpp?rev=85570&r1=85569&r2=85570&view=diff

==============================================================================
--- vmkit/trunk/mmtk/mmtk-j3/ObjectModel.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-j3/ObjectModel.cpp Thu Oct 29 21:03:38 2009
@@ -38,17 +38,17 @@
 
 extern "C" uint8_t Java_org_j3_mmtk_ObjectModel_readAvailableByte__Lorg_vmmagic_unboxed_ObjectReference_2 (JavaObject* OM, JavaObject* obj) {
 #if defined(__PPC__)
-  return ((uint8_t*)obj)[7];
+  return ((uint8_t*)obj)[7] & mvm::GCMask;
 #else
-  return ((uint8_t*)obj)[4];
+  return ((uint8_t*)obj)[4] & mvm::GCMask;
 #endif
 }
 
 extern "C" void Java_org_j3_mmtk_ObjectModel_writeAvailableByte__Lorg_vmmagic_unboxed_ObjectReference_2B (JavaObject* OM, JavaObject* obj, uint8_t val) {
 #if defined(__PPC__)
-  ((uint8_t*)obj)[7] = val;
+  ((uint8_t*)obj)[7] |= val;
 #else
-  ((uint8_t*)obj)[4] = val;
+  ((uint8_t*)obj)[4] |= val;
 #endif
 }
 
@@ -63,7 +63,7 @@
 extern "C" uint8_t
 Java_org_j3_mmtk_ObjectModel_attemptAvailableBits__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_Word_2Lorg_vmmagic_unboxed_Word_2(
     JavaObject* OM, JavaObject* obj, intptr_t oldValue, intptr_t newValue) {
-
+  
   return __sync_bool_compare_and_swap(((intptr_t*)obj) + 1, oldValue, newValue);
 }
 





More information about the vmkit-commits mailing list