Mercurial > hg > graal-compiler
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() { |