cfi.m43

来自「shengji chengxu daoshi hezai xiaznai」· M43 代码 · 共 111 行

M43
111
字号
/**************************************************
 *
 * Backtrace macros used by the part of the run-time library
 * written in assembler.
 *
 * Copyright 2003 IAR Systems. All rights reserved.
 *
 * $Revision: 1.3 $
 **************************************************/

#ifndef CFI_M43
#define CFI_M43


// ---------------------------------------------------------
// XCFI_NAMES
//

        // This is identical to the block generated by the compiler.w

XCFI_NAMES:  MACRO id
        .CFI    Names id
        .CFI    StackFrame CFA SP DATA
        .CFI    Resource PC:16, SP:16, SR:16, R4:16, R5:16, R6:16, R7:16
        .CFI    Resource R8:16, R9:16, R10:16, R11:16, R12:16, R13:16, R14:16
        .CFI    Resource R15:16
        .CFI    EndNames id
        ENDM


// ---------------------------------------------------------
// XCFI_COMMON
//

        // This is identical to the block generated by the compiler
        // with the exception that R12 .. R15 are declared as
        // SameValue.

#ifdef PIC

XCFI_COMMON: MACRO id, namedId
        .CFI    Common id using namedId
        .CFI    CodeAlign 2
        .CFI    DataAlign 2
        .CFI    ReturnAddress PC CODE
        .CFI    CFA SP+2
        .CFI    PC  add(load(4, DATA, add(CFA, literal(-2))), 4)
        .CFI    SR  Undefined
        .CFI    R4  SameValue
        .CFI    R5  SameValue
        .CFI    R6  SameValue
        .CFI    R7  SameValue
        .CFI    R8  SameValue
        .CFI    R9  SameValue
        .CFI    R10 SameValue
        .CFI    R11 SameValue
        .CFI    R12 SameValue
        .CFI    R13 SameValue
        .CFI    R14 SameValue
        .CFI    R15 SameValue
        .CFI    EndCommon id
        ENDM

#else

XCFI_COMMON: MACRO id, namedId
        .CFI    Common id using namedId
        .CFI    CodeAlign 2
        .CFI    DataAlign 2
        .CFI    ReturnAddress PC CODE
        .CFI    CFA SP+2
        .CFI    PC  Frame(CFA, -2)
        .CFI    SR  Undefined
        .CFI    R4  SameValue
        .CFI    R5  SameValue
        .CFI    R6  SameValue
        .CFI    R7  SameValue
        .CFI    R8  SameValue
        .CFI    R9  SameValue
        .CFI    R10 SameValue
        .CFI    R11 SameValue
        .CFI    R12 SameValue
        .CFI    R13 SameValue
        .CFI    R14 SameValue
        .CFI    R15 SameValue
        .CFI    EndCommon id
        ENDM

#endif


// ---------------------------------------------------------
// XCFI_BEGIN
//

XCFI_BEGIN  MACRO       name
        .CFI    Block name using libCommon
        .CFI    Function name
        ENDM


// ---------------------------------------------------------
// XCFI_END
//

XCFI_END    MACRO       name
        .CFI    EndBlock name
        ENDM

#endif // CFI_M43

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?