【发布时间】:2014-07-10 19:49:35
【问题描述】:
我有一个 32 位 ppc 的汇编代码,我很困惑如何将它转换为 64 位。有些人可以显示64位ppc的ABI链接。
这是一个示例函数,它的 64 位版本会是什么样子?
SLEAF(cpu_save_context)
stw r0, 0(ARG0)
stw sp, 4(ARG0) /* Stack frame pointer */
stw r2, 8(ARG0)
stw r3, 12(ARG0)
stw r4, 16(ARG0)
stw r5, 20(ARG0)
stw r6, 24(ARG0)
stw r7, 28(ARG0)
stw r8, 32(ARG0)
stw r9, 36(ARG0)
stw r10, 40(ARG0)
stw r11, 44(ARG0)
stw r12, 48(ARG0)
stw r13, 52(ARG0) /* Small data area pointer */
stw r14, 56(ARG0) /* C-registers */
stw r15, 60(ARG0)
stw r16, 64(ARG0)
stw r17, 68(ARG0)
stw r18, 72(ARG0)
stw r19, 76(ARG0)
stw r20, 80(ARG0)
stw r21, 84(ARG0)
stw r22, 88(ARG0)
stw r23, 92(ARG0)
stw r24, 96(ARG0)
stw r25, 100(ARG0)
stw r26, 104(ARG0)
stw r27, 108(ARG0)
stw r28, 112(ARG0)
stw r29, 116(ARG0)
stw r30, 120(ARG0)
stw r31, 124(ARG0)
mfcr r0 /* Fetch condition register */
stw r0, 128(ARG0)
mflr r0 /* Fetch link register */
stw r0, 132(ARG0)
mfctr r0 /* Fetch count register */
stw r0, 136(ARG0)
mfxer r0, /* Fetch fixed-point exception Register */
stw r0, 140(ARG0)
li ARG0, 1 /* Return TRUE to caller. */
blr
END(cpu_save_context
【问题讨论】:
标签: c assembly 64-bit cpu-registers powerpc