Changeset View
Changeset View
Standalone View
Standalone View
openmp/trunk/runtime/src/z_Linux_asm.S
Show First 20 Lines • Show All 489 Lines • ▼ Show 20 Lines | // return: %eax | ||||
popl %ebp | popl %ebp | ||||
ret | ret | ||||
DEBUG_INFO __kmp_xchg_real32 | DEBUG_INFO __kmp_xchg_real32 | ||||
# endif /* !KMP_ASM_INTRINS */ | # endif /* !KMP_ASM_INTRINS */ | ||||
//------------------------------------------------------------------------ | //------------------------------------------------------------------------ | ||||
// typedef void (*microtask_t)( int *gtid, int *tid, ... ); | |||||
// | |||||
// int | // int | ||||
// __kmp_invoke_microtask( microtask_t pkfn, int gtid, int tid, | // __kmp_invoke_microtask( void (*pkfn) (int gtid, int tid, ...), | ||||
// int argc, void *p_argv[] ) { | // int gtid, int tid, | ||||
// (*pkfn)( & gtid, & gtid, argv[0], ... ); | // int argc, void *p_argv[] | ||||
// #if OMPT_SUPPORT | |||||
// , | |||||
// void **exit_frame_ptr | |||||
// #endif | |||||
// ) { | |||||
// #if OMPT_SUPPORT | |||||
// *exit_frame_ptr = OMPT_GET_FRAME_ADDRESS(0); | |||||
// #endif | |||||
// | |||||
// (*pkfn)( & gtid, & tid, argv[0], ... ); | |||||
// return 1; | // return 1; | ||||
// } | // } | ||||
// -- Begin __kmp_invoke_microtask | // -- Begin __kmp_invoke_microtask | ||||
// mark_begin; | // mark_begin; | ||||
PROC __kmp_invoke_microtask | PROC __kmp_invoke_microtask | ||||
pushl %ebp | pushl %ebp | ||||
KMP_CFI_DEF_OFFSET 8 | KMP_CFI_DEF_OFFSET 8 | ||||
▲ Show 20 Lines • Show All 473 Lines • ▼ Show 20 Lines | movd %rax, %xmm0 // load old value into return register | ||||
DEBUG_INFO __kmp_xchg_real64 | DEBUG_INFO __kmp_xchg_real64 | ||||
# endif /* !KMP_MIC */ | # endif /* !KMP_MIC */ | ||||
# endif /* !KMP_ASM_INTRINS */ | # endif /* !KMP_ASM_INTRINS */ | ||||
//------------------------------------------------------------------------ | //------------------------------------------------------------------------ | ||||
// typedef void (*microtask_t)( int *gtid, int *tid, ... ); | |||||
// | |||||
// int | // int | ||||
// __kmp_invoke_microtask( void (*pkfn) (int gtid, int tid, ...), | // __kmp_invoke_microtask( void (*pkfn) (int gtid, int tid, ...), | ||||
// int gtid, int tid, | // int gtid, int tid, | ||||
// int argc, void *p_argv[] ) { | // int argc, void *p_argv[] | ||||
// #if OMPT_SUPPORT | |||||
// , | |||||
// void **exit_frame_ptr | |||||
// #endif | |||||
// ) { | |||||
// #if OMPT_SUPPORT | |||||
// *exit_frame_ptr = OMPT_GET_FRAME_ADDRESS(0); | |||||
// #endif | |||||
// | |||||
// (*pkfn)( & gtid, & tid, argv[0], ... ); | // (*pkfn)( & gtid, & tid, argv[0], ... ); | ||||
// return 1; | // return 1; | ||||
// } | // } | ||||
// | // | ||||
// note: at call to pkfn must have %rsp 128-byte aligned for compiler | // note: at call to pkfn must have %rsp 128-byte aligned for compiler | ||||
// | // | ||||
// parameters: | // parameters: | ||||
// %rdi: pkfn | // %rdi: pkfn | ||||
// %esi: gtid | // %esi: gtid | ||||
// %edx: tid | // %edx: tid | ||||
▲ Show 20 Lines • Show All 177 Lines • ▼ Show 20 Lines | |||||
// ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
#endif /* KMP_ARCH_X86_64 */ | #endif /* KMP_ARCH_X86_64 */ | ||||
// ' | // ' | ||||
#if (KMP_OS_LINUX || KMP_OS_DARWIN) && KMP_ARCH_AARCH64 | #if (KMP_OS_LINUX || KMP_OS_DARWIN) && KMP_ARCH_AARCH64 | ||||
//------------------------------------------------------------------------ | //------------------------------------------------------------------------ | ||||
// | |||||
// typedef void (*microtask_t)( int *gtid, int *tid, ... ); | |||||
// | |||||
// int | // int | ||||
// __kmp_invoke_microtask( void (*pkfn) (int gtid, int tid, ...), | // __kmp_invoke_microtask( void (*pkfn) (int gtid, int tid, ...), | ||||
// int gtid, int tid, | // int gtid, int tid, | ||||
// int argc, void *p_argv[] ) { | // int argc, void *p_argv[] | ||||
// #if OMPT_SUPPORT | |||||
// , | |||||
// void **exit_frame_ptr | |||||
// #endif | |||||
// ) { | |||||
// #if OMPT_SUPPORT | |||||
// *exit_frame_ptr = OMPT_GET_FRAME_ADDRESS(0); | |||||
// #endif | |||||
// | |||||
// (*pkfn)( & gtid, & tid, argv[0], ... ); | // (*pkfn)( & gtid, & tid, argv[0], ... ); | ||||
// | |||||
// // FIXME: This is done at call-site and can be removed here. | |||||
// #if OMPT_SUPPORT | |||||
// *exit_frame_ptr = 0; | |||||
// #endif | |||||
// | |||||
// return 1; | // return 1; | ||||
// } | // } | ||||
// | // | ||||
// parameters: | // parameters: | ||||
// x0: pkfn | // x0: pkfn | ||||
// w1: gtid | // w1: gtid | ||||
// w2: tid | // w2: tid | ||||
// w3: argc | // w3: argc | ||||
// x4: p_argv | // x4: p_argv | ||||
▲ Show 20 Lines • Show All 89 Lines • ▼ Show 20 Lines | # endif | ||||
DEBUG_INFO __kmp_invoke_microtask | DEBUG_INFO __kmp_invoke_microtask | ||||
// -- End __kmp_invoke_microtask | // -- End __kmp_invoke_microtask | ||||
#endif /* (KMP_OS_LINUX || KMP_OS_DARWIN) && KMP_ARCH_AARCH64 */ | #endif /* (KMP_OS_LINUX || KMP_OS_DARWIN) && KMP_ARCH_AARCH64 */ | ||||
#if KMP_ARCH_PPC64 | #if KMP_ARCH_PPC64 | ||||
//------------------------------------------------------------------------ | //------------------------------------------------------------------------ | ||||
// | |||||
// typedef void (*microtask_t)( int *gtid, int *tid, ... ); | |||||
// | |||||
// int | // int | ||||
// __kmp_invoke_microtask( void (*pkfn) (int gtid, int tid, ...), | // __kmp_invoke_microtask( void (*pkfn) (int gtid, int tid, ...), | ||||
// int gtid, int tid, | // int gtid, int tid, | ||||
// int argc, void *p_argv[] ) { | // int argc, void *p_argv[] | ||||
// #if OMPT_SUPPORT | |||||
// , | |||||
// void **exit_frame_ptr | |||||
// #endif | |||||
// ) { | |||||
// #if OMPT_SUPPORT | |||||
// *exit_frame_ptr = OMPT_GET_FRAME_ADDRESS(0); | |||||
// #endif | |||||
// | |||||
// (*pkfn)( & gtid, & tid, argv[0], ... ); | // (*pkfn)( & gtid, & tid, argv[0], ... ); | ||||
// | |||||
// // FIXME: This is done at call-site and can be removed here. | |||||
// #if OMPT_SUPPORT | |||||
// *exit_frame_ptr = 0; | |||||
// #endif | |||||
// | |||||
// return 1; | // return 1; | ||||
// } | // } | ||||
// | // | ||||
// parameters: | // parameters: | ||||
// r3: pkfn | // r3: pkfn | ||||
// r4: gtid | // r4: gtid | ||||
// r5: tid | // r5: tid | ||||
// r6: argc | // r6: argc | ||||
// r7: p_argv | // r7: p_argv | ||||
▲ Show 20 Lines • Show All 230 Lines • Show Last 20 Lines |