diff -r c1f20ce4abcf -r 3e88ff8f41d5 kernel/eka/memmodel/epoc/flexible/arm/xipc.cia --- a/kernel/eka/memmodel/epoc/flexible/arm/xipc.cia Tue Aug 31 16:34:26 2010 +0300 +++ b/kernel/eka/memmodel/epoc/flexible/arm/xipc.cia Wed Sep 01 12:34:56 2010 +0100 @@ -33,11 +33,8 @@ extern "C" void __FaultIpcClientNotNull(); // defined in ckernel.cpp #endif -#ifdef _DEBUG -__NAKED__ TInt DoThreadReadAndParseDesHeader(DThread* aThread, const TAny* aSrc, TDesHeader& aDest) -#else + __NAKED__ TInt DThread::ReadAndParseDesHeader(const TAny* aSrc, TDesHeader& aDest) -#endif { ASM_ASSERT_PAGING_SAFE; // save state including 'this', aSrc and sDest. Double word aligns the stack @@ -64,8 +61,8 @@ // Check a reference could be opened on target process's os asid, failed if r0 < 0. asm("cmp r0, #0"); asm("bmi readParseDesHeader_ExitErr"); + asm("mov r10, r0"); // r10 = os asid of current process - asm("ldmia sp!, {r0-r2}"); // r0 = this, r1 = aSrc, r2 = aDest __ASM_CLI(); // disable all interrupts