理论上来说,ARM的15个通用寄存器是通用的,但实际上并非如此,特别是在过程调用的过程中。
PCS(Procedure Call Standard for Arm architecture)就定义了过程调用中,寄存器的特殊用途。
Role in the procedure call standard
R15 PC The Program Counter.
R14 LR The Link Register.
R13 SP The Stack Pointer.
R12 IP The Intra-Procedure-call scratch register. (可简单的认为暂存SP,没啥用)
实际上,还有一个R11是optional的,被称为FP,即frame pointer。
1,stack frame
stack我们都知道,每一个进程都有自己的栈。考虑进程执行时发生函数调用的场景,母函数和子函数使用的是同一个栈,在通常的情况下,我们并不需要区分母函数和子函数分别使用了栈的哪个部分。但是,当我们需要在执行过程中对函数调用进行backtrace的时候,这一信息就很重要了。
简单的说,stack frame就是一个函数所使用的stack的一部分,所有函数的stack frame串起来就组成了一个完整的栈。stack frame的两个边界分别由FP和SP来限定。
2,backtrace
在程序执行过程中(通常是发生了某种意外情况而需要进行调试),通过SP和FP所限定的stack frame,就可以得到母函数的SP和FP,从而得到母函数的stack frame(PC,LR,SP,FP会在函数调用的第一时间压栈),以此追溯,即可得到所有函数的调用顺序。
3,gcc关于stack frame的优化选项
看起来FP只是在backtrace的时候有用,所以如果我们没有backstrace的需求,我们是否可以不使用FP。
转自:http://blog.chinaunix.net/uid-25871104-id-2938389.html
分享到:
相关推荐
$30:($fp)GNU MIPS C编译器使⽤用了帧指针(frame pointer),⽽而SGI的C编译器没有使⽤用,⽽而把这个寄存器当作保存寄存器使⽤用($s8),这节省了调⽤用和返回开销,但增加了代码⽣生成的复杂性。 $31:($ra)存放...
CFP MSA 接口标准
CFP-FP人脸识别数据集,包括CFP_FP_aligned_112,cfp_fp_pair.txt
phy芯片FPGA配置代码,通过项目验证。
完成FP腔传感解调
FP-TREE的构建过程详细介绍,图文并茂,看完胜过看好几遍书,故分享一下。
松下FP-XH手册位置功能篇,最新松下PLC控制、编程。
Fast Report 5 Demo 针对fp3文件查看、编辑及转换格式。 FP3是FastReport创建的页面布局文件,包含报表设计文件。生成的报表一般用fp#格式进行存储。FP3格式文件类似于pdf格式文件。Fast Report Viewer 由 Fast ...
CFP-FP模拟口罩人脸数据集.7z
yolov5模型,yolov5量化模型,yolov5 FP16 FP32 INT8量化模型,yolov5s.onnx,yolov5s.pt,yolov5s.engine,yolov5s.trt,yolov5s_fp16.engine,yolov5s_fp16_int8_engine,yolov5s_int8.engine, 模型量化,各种量化版本...
松下PLC编程软件 FPWINPro7.0 FP-X编程软件 Control FPWIN Pro 7 适合 FP-X FPOR FP-E FP7 FP2 FP2SH FP-X0
打印机驱动 惠普HP LaserJet Pro MFP M128fp 驱动打印机驱动 惠普HP LaserJet Pro MFP M128fp 驱动打印机驱动 惠普HP LaserJet Pro MFP M128fp 驱动打印机驱动 惠普HP LaserJet Pro MFP M128fp 驱动打印机驱动 惠普...
rda5807fp数控收音机51单片机
基于Apriori、FP-Growth及Eclat算法的频繁模式挖掘源程序 一、DataMiningApriori程序 用eclipse打开,把三个测试数据mushroom、accidents和T10I4D100K放置 在F:\DataMiningSample\FPmining文件夹下面,即可运行 二、...
打印机驱动 FP-550K_W10打印机驱动 FP-550K_W10打印机驱动 FP-550K_W10打印机驱动 FP-550K_W10打印机驱动 FP-550K_W10打印机驱动 FP-550K_W10打印机驱动 FP-550K_W10打印机驱动 FP-550K_W10打印机驱动 FP-550K_W10...
This CFP Multi-Source Agreement (MSA) defines the CFP4 form factor of an optical transceiver to support 40Gbit/s and 100Gbit/s interfaces for Ethernet, Telecommunication and other applications....
FP5208、FP5208A 和 FP5208B 是适用于广泛工作的升压型拓扑开关稳压器电 压应用。他们提供内置的门驱动器引脚驱动外部 N-MOSFET。这个误差放大器的 非逆变输入连接到 0.6V 的精密参考电压。他们有可编程软启动时间由...
python3.2实现FP-TREE挖掘算法,可以显示每一步FP树的图片
将cfp-fp数据经过旋转对齐后制定到bin文件
松下PLC-FP1系列编程电缆接线图 是今天用系统自带的“画图”手工画出来的,信息来源是:在网上花12元买了个松下FP1系列PLC的编程电缆(邮费比电缆都贵花了15元),实验下好用,就用 万用表测画出来的,保证准确无误...