12.07.2015 Views

RealView - ARM Information Center

RealView - ARM Information Center

RealView - ARM Information Center

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

使 用 基 本 链 接 器 功 能• 链 接 器 的 操 作 还 取 决 于 代 表 函 数 的 符 号 的 大 小 以 及 显 示 在 表 3-2 中 的 调 用函 数 (<strong>ARM</strong> 或 Thumb) 和 被 调 用 函 数 (<strong>ARM</strong> 或 Thumb)。表 3-2 内 联 小 函 数调 用 函 数被 调 用 函数可 以 内 联 的 符 号 大小<strong>ARM</strong> <strong>ARM</strong> 4 到 8 字 节<strong>ARM</strong> Thumb 2 到 6 字 节Thumb Thumb 2 到 6 字 节Thumb <strong>ARM</strong> 4 到 8 字 节• 为 了 执 行 内 联 , 函 数 的 最 后 一 条 指 令 必 须 是 以 下 两 者 之 一 :MOV pc, lr或BX lr只 由 一 个 返 回 序 列 组 成 的 函 数 可 以 作 为 NOP 内 联 。• 只 有 当 BL 的 条 件 与 要 内 联 的 指 令 的 条 件 相 匹 配 , 或 者 BL 或 要 内 联 的 指 令是 无 条 件 指 令 时 , 才 能 内 联 有 条 件 <strong>ARM</strong> 指 令 。 例 如 ,BLEQ 只 能 内 联 类 似 于ADD 的 无 条 件 指 令 或 类 似 于 ADDEQ 的 具 有 匹 配 条 件 的 指 令 。无 条 件 的 <strong>ARM</strong> BL 可 以 内 联 满 足 所 有 其 他 标 准 的 任 何 有 条 件 的 或 无 条 件 的指 令 。• IT 块 的 最 后 一 条 指 令 BL 不 能 内 联 16 位 Thumb 指 令 或 32 位 MRS、MSR 或 CPS指 令 。 这 是 因 为 IT 块 会 更 改 其 作 用 域 内 的 指 令 的 行 为 , 因 此 内 联 指 令 会 更改 程 序 的 行 为 。处 理 尾 调 用 节如 第 3-21 页 的 控 制 内 联 中 所 述 , 链 接 器 会 将 任 何 跳 转 替 换 为 一 个 重 定 位 , 该 重定 位 可 解 析 为 具 有 NOP 的 下 一 条 指 令 。 这 意 味 着 可 以 优 化 尾 调 用 节 ( 即 通 过 跳 转指 令 完 成 的 节 ), 使 其 目 标 紧 跟 在 执 行 区 中 的 尾 调 用 节 后 面 。3-22 版 权 所 有 © 2007 <strong>ARM</strong> 公 司 。 保 留 所 有 权 利 。 <strong>ARM</strong> DUI 0349AC

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!