X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5f25255261a9dc908c7ba0133de80f05f993c8c5..ca5e1ce0281bd7fb363bd53d59185d6a1a99f75b:/src/mc/mc_dwarf_expression.c diff --git a/src/mc/mc_dwarf_expression.c b/src/mc/mc_dwarf_expression.c index 54f0d22e2a..54183b4bb9 100644 --- a/src/mc/mc_dwarf_expression.c +++ b/src/mc/mc_dwarf_expression.c @@ -43,6 +43,31 @@ int mc_dwarf_execute_expression( break; } + // Push the CFA (Call Frame Addresse): + case DW_OP_call_frame_cfa: + { + unw_word_t res; + + int register_id = +#if defined(UNW_TARGET_X86_64) + UNW_X86_64_CFA +#elif defined(UNW_TARGET_X86) + UNW_X86_CFA +#else + -1; +#endif + ; + if(register_id<0) + xbt_die("Support for CFA not implemented for this achitecture."); + + if(!state->cursor) + return MC_EXPRESSION_E_MISSING_STACK_CONTEXT; + + unw_get_reg(state->cursor, register_id, &res); + error = mc_dwarf_push_value(state, res + op->number); + break; + } + // Frame base: case DW_OP_fbreg: