Remove Function::Call extern handler shortcut (as we need old behavior for savestates)

This commit is contained in:
Dr. Chat 2015-12-01 16:44:58 -06:00 committed by Ben Vanik
parent 67a45203e3
commit 6d98628962
1 changed files with 1 additions and 14 deletions

View File

@ -129,20 +129,7 @@ bool GuestFunction::Call(ThreadState* thread_state, uint32_t return_address) {
ThreadState::Bind(thread_state); ThreadState::Bind(thread_state);
} }
bool result = false; bool result = CallImpl(thread_state, return_address);
if (behavior_ == Behavior::kExtern) {
// Special handling for extern functions to speed things up (we don't
// trampoline into guest code only to trampoline back out).
if (extern_handler_) {
extern_handler_(thread_state->context(),
thread_state->context()->kernel_state);
} else {
XELOGW("undefined extern call to %.8X %s", address(), name().c_str());
result = false;
}
} else {
result = CallImpl(thread_state, return_address);
}
if (original_thread_state != thread_state) { if (original_thread_state != thread_state) {
ThreadState::Bind(original_thread_state); ThreadState::Bind(original_thread_state);