diff src/cpu/x86/vm/stubGenerator_x86_32.cpp @ 6725:da91efe96a93

6964458: Reimplement class meta-data storage to use native memory Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author coleenp
date Sat, 01 Sep 2012 13:25:18 -0400
parents 1d7922586cf6
children d8ce2825b193
line wrap: on
line diff
--- a/src/cpu/x86/vm/stubGenerator_x86_32.cpp	Fri Aug 31 16:39:35 2012 -0700
+++ b/src/cpu/x86/vm/stubGenerator_x86_32.cpp	Sat Sep 01 13:25:18 2012 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,7 +28,7 @@
 #include "interpreter/interpreter.hpp"
 #include "nativeInst_x86.hpp"
 #include "oops/instanceOop.hpp"
-#include "oops/methodOop.hpp"
+#include "oops/method.hpp"
 #include "oops/objArrayKlass.hpp"
 #include "oops/oop.inline.hpp"
 #include "prims/methodHandles.hpp"
@@ -234,7 +234,7 @@
 
     // call Java function
     __ BIND(parameters_done);
-    __ movptr(rbx, method);           // get methodOop
+    __ movptr(rbx, method);           // get Method*
     __ movptr(rax, entry_point);      // get entry_point
     __ mov(rsi, rsp);                 // set sender sp
     BLOCK_COMMENT("call Java function");
@@ -682,29 +682,11 @@
     __ cmpptr(rdx, oop_bits);
     __ jcc(Assembler::notZero, error);
 
-    // make sure klass is 'reasonable'
+    // make sure klass is 'reasonable', which is not zero.
     __ movptr(rax, Address(rax, oopDesc::klass_offset_in_bytes())); // get klass
     __ testptr(rax, rax);
     __ jcc(Assembler::zero, error);              // if klass is NULL it is broken
-
-    // Check if the klass is in the right area of memory
-    const int klass_mask = Universe::verify_klass_mask();
-    const int klass_bits = Universe::verify_klass_bits();
-    __ mov(rdx, rax);
-    __ andptr(rdx, klass_mask);
-    __ cmpptr(rdx, klass_bits);
-    __ jcc(Assembler::notZero, error);
-
-    // make sure klass' klass is 'reasonable'
-    __ movptr(rax, Address(rax, oopDesc::klass_offset_in_bytes())); // get klass' klass
-    __ testptr(rax, rax);
-    __ jcc(Assembler::zero, error);              // if klass' klass is NULL it is broken
-
-    __ mov(rdx, rax);
-    __ andptr(rdx, klass_mask);
-    __ cmpptr(rdx, klass_bits);
-    __ jcc(Assembler::notZero, error);           // if klass not in right area
-                                                 // of memory it is broken too.
+    // TODO: Future assert that klass is lower 4g memory for UseCompressedKlassPointers
 
     // return if everything seems ok
     __ bind(exit);