kernel/eka/debug/utrace/inc/traceutils.h
branchGCC_SURGE
changeset 160 30e086416910
parent 0 a41df078684a
equal deleted inserted replaced
159:185ac9ba847c 160:30e086416910
    75 	BTrace::OutFilteredPcFormatBig(UTRACE_HEADER(8,aClassification,aThreadIdPresent,aPcPresent),(TUint32)(aModuleUid),aPc,aFormatId,aData,(TInt)(aDataSize))
    75 	BTrace::OutFilteredPcFormatBig(UTRACE_HEADER(8,aClassification,aThreadIdPresent,aPcPresent),(TUint32)(aModuleUid),aPc,aFormatId,aData,(TInt)(aDataSize))
    76 
    76 
    77 
    77 
    78 #ifdef __MARM_ARMV5__
    78 #ifdef __MARM_ARMV5__
    79 	//armv5
    79 	//armv5
    80 #define GET_PC(pc) \
    80 	#if defined(__GCCE__)
    81 	TUint32 pc = 0; \
    81 	#define GET_PC(pc) \
    82 	asm("mov pc, __return_address()")
    82 		TUint32 pc = 0; \
       
    83 		asm("mov %[res], %[val]" : [res] "=r" (pc) : [val] "r" (__builtin_return_address(0)))
       
    84 	#elif defined(__ARMCC__)
       
    85 	#define GET_PC(pc) \
       
    86 		TUint32 pc = 0; \
       
    87 		asm("mov pc, __return_address()")
       
    88 	#else
       
    89 	#error What compiler?
       
    90 	#endif
    83 #elif __MARM_ARM4__
    91 #elif __MARM_ARM4__
    84 	//arm4 not implemented yet!
    92 	//arm4 not implemented yet!
    85 #define GET_PC(pc) \
    93 #define GET_PC(pc) \
    86 	TUint32 pc = 0;
    94 	TUint32 pc = 0;
    87 #elif __WINS__
    95 #elif __WINS__