src/share/vm/c1/c1_Runtime1.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 7008809 Sdiff src/share/vm/c1

src/share/vm/c1/c1_Runtime1.cpp

Print this page


   1 /*
   2  * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *


 322     deopt_caller();
 323   }
 324 JRT_END
 325 
 326 
 327 JRT_ENTRY(void, Runtime1::new_multi_array(JavaThread* thread, klassOopDesc* klass, int rank, jint* dims))
 328   NOT_PRODUCT(_new_multi_array_slowcase_cnt++;)
 329 
 330   assert(oop(klass)->is_klass(), "not a class");
 331   assert(rank >= 1, "rank must be nonzero");
 332   oop obj = arrayKlass::cast(klass)->multi_allocate(rank, dims, CHECK);
 333   thread->set_vm_result(obj);
 334 JRT_END
 335 
 336 
 337 JRT_ENTRY(void, Runtime1::unimplemented_entry(JavaThread* thread, StubID id))
 338   tty->print_cr("Runtime1::entry_for(%d) returned unimplemented entry point", id);
 339 JRT_END
 340 
 341 
 342 JRT_ENTRY(void, Runtime1::throw_array_store_exception(JavaThread* thread))
 343   THROW(vmSymbolHandles::java_lang_ArrayStoreException());


 344 JRT_END
 345 
 346 
 347 JRT_ENTRY(void, Runtime1::post_jvmti_exception_throw(JavaThread* thread))
 348   if (JvmtiExport::can_post_on_exceptions()) {
 349     vframeStream vfst(thread, true);
 350     address bcp = vfst.method()->bcp_from(vfst.bci());
 351     JvmtiExport::post_exception_throw(thread, vfst.method(), bcp, thread->exception_oop());
 352   }
 353 JRT_END
 354 
 355 // This is a helper to allow us to safepoint but allow the outer entry
 356 // to be safepoint free if we need to do an osr
 357 static nmethod* counter_overflow_helper(JavaThread* THREAD, int branch_bci, methodOopDesc* m) {
 358   nmethod* osr_nm = NULL;
 359   methodHandle method(THREAD, m);
 360 
 361   RegisterMap map(THREAD, false);
 362   frame fr =  THREAD->last_frame().sender(&map);
 363   nmethod* nm = (nmethod*) fr.cb();


   1 /*
   2  * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *


 322     deopt_caller();
 323   }
 324 JRT_END
 325 
 326 
 327 JRT_ENTRY(void, Runtime1::new_multi_array(JavaThread* thread, klassOopDesc* klass, int rank, jint* dims))
 328   NOT_PRODUCT(_new_multi_array_slowcase_cnt++;)
 329 
 330   assert(oop(klass)->is_klass(), "not a class");
 331   assert(rank >= 1, "rank must be nonzero");
 332   oop obj = arrayKlass::cast(klass)->multi_allocate(rank, dims, CHECK);
 333   thread->set_vm_result(obj);
 334 JRT_END
 335 
 336 
 337 JRT_ENTRY(void, Runtime1::unimplemented_entry(JavaThread* thread, StubID id))
 338   tty->print_cr("Runtime1::entry_for(%d) returned unimplemented entry point", id);
 339 JRT_END
 340 
 341 
 342 JRT_ENTRY(void, Runtime1::throw_array_store_exception(JavaThread* thread, oopDesc* obj))
 343   ResourceMark rm(thread);
 344   const char* klass_name = Klass::cast(obj->klass())->external_name();
 345   SharedRuntime::throw_and_post_jvmti_exception(thread, vmSymbols::java_lang_ArrayStoreException(), klass_name);
 346 JRT_END
 347 
 348 
 349 JRT_ENTRY(void, Runtime1::post_jvmti_exception_throw(JavaThread* thread))
 350   if (JvmtiExport::can_post_on_exceptions()) {
 351     vframeStream vfst(thread, true);
 352     address bcp = vfst.method()->bcp_from(vfst.bci());
 353     JvmtiExport::post_exception_throw(thread, vfst.method(), bcp, thread->exception_oop());
 354   }
 355 JRT_END
 356 
 357 // This is a helper to allow us to safepoint but allow the outer entry
 358 // to be safepoint free if we need to do an osr
 359 static nmethod* counter_overflow_helper(JavaThread* THREAD, int branch_bci, methodOopDesc* m) {
 360   nmethod* osr_nm = NULL;
 361   methodHandle method(THREAD, m);
 362 
 363   RegisterMap map(THREAD, false);
 364   frame fr =  THREAD->last_frame().sender(&map);
 365   nmethod* nm = (nmethod*) fr.cb();


src/share/vm/c1/c1_Runtime1.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File