Add update_debugger_support for x86 and fix ModBasket.
Made a constructor for struct ModBasket rather than using memset(0).
This was causing problems when setting the std::string className field
on the host.
Change-Id: Ie8fa08d0c9f01b029db88c8a309e54283b00b497
diff --git a/src/oat/runtime/x86/runtime_support_x86.S b/src/oat/runtime/x86/runtime_support_x86.S
index 558500d..1d24606 100644
--- a/src/oat/runtime/x86/runtime_support_x86.S
+++ b/src/oat/runtime/x86/runtime_support_x86.S
@@ -374,6 +374,17 @@
TWO_ARG_DOWNCALL art_initialize_type_from_code, artInitializeTypeFromCode, RETURN_IF_EAX_NOT_ZERO
TWO_ARG_DOWNCALL art_initialize_type_and_verify_access_from_code, artInitializeTypeAndVerifyAccessFromCode, RETURN_IF_EAX_NOT_ZERO
+DEFINE_FUNCTION art_update_debugger
+ mov %eax, %ebx // stash away eax so that it's saved as if it were an argument
+ SETUP_REF_AND_ARGS_CALLEE_SAVE_FRAME
+ pushl %esp // pass arg2 (sp)
+ pushl %fs:THREAD_SELF_OFFSET // pass Thread::Current()
+ pushl %edx // pass arg0 (dex pc)
+ call SYMBOL(artUpdateDebuggerFromCode) // artUpdateDebuggerFromCode(int32_t, Thread*, Method**)
+ RESTORE_REF_AND_ARGS_CALLEE_SAVE_FRAME
+ mov %ebx, %eax // restore original eax
+ ret
+
DEFINE_FUNCTION art_get_and_clear_exception
subl LITERAL(8), %esp // alignment padding
pushl %fs:THREAD_SELF_OFFSET // pass Thread::Current()
@@ -734,6 +745,14 @@
addl LITERAL(44), %esp // pop arguments
RETURN_OR_DELIVER_PENDING_EXCEPTION // return or deliver exception
+DEFINE_FUNCTION art_instrumentation_entry_from_code
+ ret
+DEFINE_FUNCTION art_instrumentation_exit_from_code
+ ret
+
+DEFINE_FUNCTION art_deoptimize
+ ret
+
/*
* String's indexOf.
*
@@ -836,5 +855,4 @@
END_MACRO
// TODO: implement these!
-UNIMPLEMENTED art_update_debugger
UNIMPLEMENTED art_memcmp16