UniCore32编译相关ABI(暂定).PDF

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UniCore32编译相关ABI(暂定)

UniCore32 编译相关ABI (暂定) 目 录 UniCore32 编译相关ABI (暂定) 1 1 说明(Introduction ) 1 2 存储布局(Storage layout ) 1 2.1 内存模型(Memory model ) 1 2.2 数据类型布局(Type layout ) 2 2.2.1 字节顺序(Byte ordering ) 2 2.2.2 标量类型(Scalar type ) 2 2.2.3 聚合体(Aggregate ) 3 2.2.4 数组类型(Array type ) 4 2.2.5 位域(Bit field ) 4 2.3 寻址(Addressing ) 6 3 寄存器使用 (Register usage ) 6 3.1 寄存器(CPU Registers ) 6 3.2 浮点寄存器(Floating point register ) 10 4 调用规范(Call standard ) 11 4.1 栈卷回(Stack unwinding)11 4.2 函数调用(Subroutine call ) 12 4.3 传参(Parameter passing ) 13 4.3.1 参数寄存器(Parameter registers ) 13 4.3.2 标量参数(Scalar type parameter ) 14 4.3.3 聚合类型参数(Aggregate parameter ) 15 4.3.4 变长参数(Variable parameter ) 15 4.4 返回值(Result return ) 16 4.4.1 标量类型返回值(Scalar type return ) 16 4.4.2 聚合体类型返回值(Aggregate return ) 17 4.5 程序入口和出口 (Prologue and epilogue ) 19 4.5.1 程序入口(Prologue ) 19 4.5.2 程序出口(Epilogue ) 19 UniCore32 编译相关ABI (暂定)1 1 说明(Introduction ) 制定UniCore32 编译相关ABI,使得独立编译、汇编得到的代码,可以被正确链 接、执行。手工编写得到的体系结构相关代码,也应遵循此规范。 UniCore32 编译相关ABI,包括存储布局、寄存器使用和函数调用规范几个部分。 2 存储布局(Storage layout ) 2.1 内存模型(Memory model) 此规范描述某一个进程的函数调用规范。一个进程的存储模型,由当时寄存器 和内存的数据内容决定。内存寻址使用32 位无符号数。 进程可寻址的内存按照读写属性和创建方式,分类如下: a. 只读内存(read-only memory) b. 静态分配的读写内存(static read-write memory) c. 动态分配的读写内存(dynamic read-write memory), 通常称为堆内存或堆 (heap memory)。 d. 栈内存或栈 (stack memory,有时也称为call frame)。 1 Version 1.1.0 此文档管理规定属保密级别,仅供研发中心成员和相关的工作人员查看。 本文档为暂定文档,相关接口和规范已确定,但文档格式和陈述语句可能会进一步修订。 最后更改日期:2010/04/14 - 1 -

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档