comparison src/share/vm/runtime/javaCalls.cpp @ 5747:120820e30baa

added basic high-level interpreter support to HotSpot
author Christian Haeubl <haeubl@ssw.jku.at>
date Tue, 03 Jul 2012 16:56:40 +0200
parents 11ce128f8d28
children 8d0a6bceb112
comparison
equal deleted inserted replaced
5746:17d2c3b72762 5747:120820e30baa
37 #include "runtime/interfaceSupport.hpp" 37 #include "runtime/interfaceSupport.hpp"
38 #include "runtime/javaCalls.hpp" 38 #include "runtime/javaCalls.hpp"
39 #include "runtime/mutexLocker.hpp" 39 #include "runtime/mutexLocker.hpp"
40 #include "runtime/signature.hpp" 40 #include "runtime/signature.hpp"
41 #include "runtime/stubRoutines.hpp" 41 #include "runtime/stubRoutines.hpp"
42 #ifdef HIGH_LEVEL_INTERPRETER
43 # include "graal/graalVMToInterpreter.hpp"
44 #endif
42 #ifdef TARGET_OS_FAMILY_linux 45 #ifdef TARGET_OS_FAMILY_linux
43 # include "thread_linux.inline.hpp" 46 # include "thread_linux.inline.hpp"
44 #endif 47 #endif
45 #ifdef TARGET_OS_FAMILY_solaris 48 #ifdef TARGET_OS_FAMILY_solaris
46 # include "thread_solaris.inline.hpp" 49 # include "thread_solaris.inline.hpp"
435 } 438 }
436 #else 439 #else
437 ShouldNotReachHere(); 440 ShouldNotReachHere();
438 #endif 441 #endif
439 } 442 }
440 443
444 #ifdef HIGH_LEVEL_INTERPRETER
445 if (thread->high_level_interpreter_in_vm() && !method->is_native() && Interpreter::contains(entry_point)) {
446 assert(nm == NULL || !nm->is_alive(), "otherwise nm should be invoked");
447 VMToInterpreter::execute(result, m, args, result->get_type(), thread);
448 } else
449 #endif
441 // do call 450 // do call
442 { JavaCallWrapper link(method, receiver, result, CHECK); 451 { JavaCallWrapper link(method, receiver, result, CHECK);
443 { HandleMark hm(thread); // HandleMark used by HandleMarkCleaner 452 { HandleMark hm(thread); // HandleMark used by HandleMarkCleaner
444 453
445 StubRoutines::call_stub()( 454 StubRoutines::call_stub()(
470 if (oop_result_flag) { 479 if (oop_result_flag) {
471 result->set_jobject((jobject)thread->vm_result()); 480 result->set_jobject((jobject)thread->vm_result());
472 thread->set_vm_result(NULL); 481 thread->set_vm_result(NULL);
473 } 482 }
474 } 483 }
475
476 484
477 //-------------------------------------------------------------------------------------- 485 //--------------------------------------------------------------------------------------
478 // Implementation of JavaCallArguments 486 // Implementation of JavaCallArguments
479 487
480 intptr_t* JavaCallArguments::parameters() { 488 intptr_t* JavaCallArguments::parameters() {