📄 powerpc_sys5_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, 4#else#define fsize 64#define lrsave 4#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 + -