/*
    Boost::Context assembly wrapper - done to avoid compiling the whole boost binary library
    which may be unpleasant, in particular under Windows (we don't support VC++, while boost::context
    does not support mingw */

#ifdef __APPLE__

    #if __i386__
        #include "jump_i386_sysv_macho_gas.S"
        #include "make_i386_sysv_macho_gas.S"

    #elif __x86_64__
        #include "jump_x86_64_sysv_macho_gas.S"
        #include "make_x86_64_sysv_macho_gas.S"

    #else
        #error "Missing make_fcontext & jump_fcontext routines for this architecture"
    #endif

#else

    #if __i386__

        #ifdef __WIN32__
            #include "jump_i386_pe_gas.S"
            #include "make_i386_pe_gas.S"
        #else
            #include "jump_i386_sysv_elf_gas.S"
            #include "make_i386_sysv_elf_gas.S"
        #endif

    #elif __x86_64__
        #include "jump_x86_64_sysv_elf_gas.S"
        #include "make_x86_64_sysv_elf_gas.S"

    #elif __arm__
        #include "jump_arm_aapcs_elf_gas.S"
        #include "make_arm_aapcs_elf_gas.S"

    #else
         #error "Missing make_fcontext & jump_fcontext routines for this architecture"
    #endif

#endif
