#include "asm_support.h"

#if defined(__APPLE__)
    // Mac OS X mangles the functions with an underscore prefix
    #define art_deliver_exception_from_code _art_deliver_exception_from_code
    #define art_proxy_invoke_handler _art_proxy_invoke_handler
    #define art_update_debugger _art_update_debugger
    #define artDeliverExceptionFromCode _artDeliverExceptionFromCode
#endif

    .globl art_deliver_exception_from_code
    /*
     * Called by managed code, saves callee saves and then calls artThrowException
     * that will place a mock Method* at the bottom of the stack.
     * EAX holds the exception.
     */
art_deliver_exception_from_code:
    // Create frame
    pushl %edi  // Save callee saves
    pushl %esi
    pushl %ebp
    pushl $0
    pushl $0
    pushl $0
    pushl $0   // Will be clobbered to be Method*
    mov %esp, %ecx
    // Outgoing argument set up
    pushl $0  // Alignment padding
    pushl %ecx                        // pass SP
    pushl %fs:THREAD_SELF_OFFSET      // pass fs:offsetof(Thread,self_)
    pushl %eax                        // pass Throwable*
    call artDeliverExceptionFromCode  // artDeliverExceptionFromCode(Throwable*, Thread*, SP)
    int3

    // TODO
    .globl art_proxy_invoke_handler
art_proxy_invoke_handler:
    int3

    // TODO
    .globl art_update_debugger
art_update_debugger:
    int3
