📄 powerpc_mach_b.s
字号:
/* speed test for basic CPU operations *//* Marco Bucci <marco.bucci@inwind.it> *//* This code was developed with the Code Warrior integrate ppc assembler. * Macros are use to hide illegal constructs whether you are using a * "normal" assembler or the "C integrated" assembler. */#if 0 .text .align 4 .globl b_call_reg .globl _b_call_reg .globl b_call_imm .globl _b_call_imm .globl b_add .globl _b_add .globl b_load .globl _b_load.set fsize, 64.set lrsave, 8#else#define fsize 64#define lrsave 8#endif#if 0.if 0#endifasm void b_null(void){#if 0.endif#endif#if 0b_null:#endif blr#if 0.if 0#endif}#if 0.endif#endif/* actually the same as the following. How to get "b_null" address? * I didnt find the right sintax or the right way. * I should take the current PC, then the difference to "b_null" * (making the difference beween the labels), perform the sum and go?! */ #if 0.if 0#endifasm void b_call_reg(long n){#if 0.endif#endif#if 0b_call_reg:_b_call_reg:#endif mflr r0 stw r31,-4(r1) stw r30,-8(r1) stw r0,lrsave(r1) stwu r1,-fsize(r1) mr r30,r3 li r31,0 b L1L0: bl b_null bl b_null bl b_null bl b_null bl b_null addi r31,r31,5L1: cmpw r31,r30 blt L0 lwz r0,lrsave+fsize(r1) mtlr r0 lwz r31,-4+fsize(r1) lwz r30,-8+fsize(r1) addi r1,r1,fsize blr#if 0.if 0#endif}#if 0.endif#endif#if 0.if 0#endifasm void b_call_imm(long n){#if 0.endif#endif#if 0b_call_imm:_b_call_imm:#endif mflr r0 stw r31,-4(r1) stw r30,-8(r1) stw r0,lrsave(r1) stwu r1,-fsize(r1) mr r30,r3 li r31,0 b L3L2: bl b_null bl b_null bl b_null bl b_null bl b_null addi r31,r31,5L3: cmpw r31,r30 blt L2 lwz r0,lrsave+fsize(r1) mtlr r0 lwz r31,-4+fsize(r1) lwz r30,-8+fsize(r1) addi r1,r1,fsize blr#if 0.if 0#endif}#if 0.endif#endif#if 0.if 0#endifasm void b_add(long n){#if 0.endif#endif#if 0b_add:_b_add:#endif mflr r0 stw r31,-4(r1) stw r30,-8(r1) stw r0,lrsave(r1) stwu r1,-fsize(r1) mr r30,r3 li r31,0 b L5L4: addi r3,r3,5 addi r4,r4,5 addi r5,r5,5 addi r6,r6,5 addi r7,r7,5 addi r3,r3,5 addi r4,r4,5 addi r5,r5,5 addi r6,r6,5 addi r7,r7,5 addi r31,r31,10L5: cmpw r31,r30 blt L4 lwz r0,lrsave+fsize(r1) mtlr r0 lwz r31,-4+fsize(r1) lwz r30,-8+fsize(r1) addi r1,r1,fsize blr#if 0.if 0#endif}#if 0.endif#endif#if 0.if 0#endifasm void b_load(long n){#if 0.endif#endif#if 0b_load:_b_load:#endif mflr r0 stw r31,-4(r1) stw r30,-8(r1) stw r0,lrsave(r1) stwu r1,-fsize(r1) mr r30,r3 li r31,0 b L7L6: lwz r3,4(r1) lwz r4,8(r1) lwz r5,12(r1) lwz r6,16(r1) lwz r7,20(r1) lwz r3,24(r1) lwz r4,28(r1) lwz r5,32(r1) lwz r6,36(r1) lwz r7,40(r1) addi r31,r31,10L7: cmpw r31,r30 blt L6 lwz r0,lrsave+fsize(r1) mtlr r0 lwz r31,-4+fsize(r1) lwz r30,-8+fsize(r1) addi r1,r1,fsize blr#if 0.if 0#endif}#if 0.endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -