//------------------------------------------------------------------------------------------------------- // Copyright (C) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. //------------------------------------------------------------------------------------------------------- // ARM-specific macro definitions #pragma once #ifndef _M_ARM #error Include arm.h in builds of ARM targets only. #endif extern "C" LPVOID arm_GET_CURRENT_FRAME(void); extern "C" VOID arm_SAVE_REGISTERS(void*); /* * The relevant part of the frame looks like this (high addresses at the top, low ones at the bottom): * * ---------------------- * r3 <=== Homed input parameters * r2 < * r1 < * r0 <=== * lr <=== return address * r11 <=== current r11 (frame pointer) * ... */ const DWORD ReturnAddrOffsetFromFramePtr = 1; const DWORD ArgOffsetFromFramePtr = 2;