112027Sjungma@eit.uni-kl.de/* speed test for basic CPU operations */ 212027Sjungma@eit.uni-kl.de 312027Sjungma@eit.uni-kl.de 412027Sjungma@eit.uni-kl.de/* Marco Bucci <marco.bucci@inwind.it> */ 512027Sjungma@eit.uni-kl.de 612027Sjungma@eit.uni-kl.de/* This code was developed with the Code Warrior integrate ppc assembler. 712027Sjungma@eit.uni-kl.de * Macros are use to hide illegal constructs whether you are using a 812027Sjungma@eit.uni-kl.de * "normal" assembler or the "C integrated" assembler. 912027Sjungma@eit.uni-kl.de */ 1012027Sjungma@eit.uni-kl.de 1112027Sjungma@eit.uni-kl.de#if 0 1212027Sjungma@eit.uni-kl.de 1312027Sjungma@eit.uni-kl.de 1412027Sjungma@eit.uni-kl.de .text 1512027Sjungma@eit.uni-kl.de .align 4 1612027Sjungma@eit.uni-kl.de 1712027Sjungma@eit.uni-kl.de .globl b_call_reg 1812027Sjungma@eit.uni-kl.de .globl _b_call_reg 1912027Sjungma@eit.uni-kl.de .globl b_call_imm 2012027Sjungma@eit.uni-kl.de .globl _b_call_imm 2112027Sjungma@eit.uni-kl.de .globl b_add 2212027Sjungma@eit.uni-kl.de .globl _b_add 2312027Sjungma@eit.uni-kl.de .globl b_load 2412027Sjungma@eit.uni-kl.de .globl _b_load 2512027Sjungma@eit.uni-kl.de 2612027Sjungma@eit.uni-kl.de.set fsize, 64 2712027Sjungma@eit.uni-kl.de.set lrsave, 4 2812027Sjungma@eit.uni-kl.de 2912027Sjungma@eit.uni-kl.de#else 3012027Sjungma@eit.uni-kl.de 3112027Sjungma@eit.uni-kl.de#define fsize 64 3212027Sjungma@eit.uni-kl.de#define lrsave 4 3312027Sjungma@eit.uni-kl.de 3412027Sjungma@eit.uni-kl.de#endif 3512027Sjungma@eit.uni-kl.de 3612027Sjungma@eit.uni-kl.de 3712027Sjungma@eit.uni-kl.de 3812027Sjungma@eit.uni-kl.de 3912027Sjungma@eit.uni-kl.de#if 0 4012027Sjungma@eit.uni-kl.de.if 0 4112027Sjungma@eit.uni-kl.de#endif 4212027Sjungma@eit.uni-kl.deasm void b_null(void) 4312027Sjungma@eit.uni-kl.de{ 4412027Sjungma@eit.uni-kl.de#if 0 4512027Sjungma@eit.uni-kl.de.endif 4612027Sjungma@eit.uni-kl.de#endif 4712027Sjungma@eit.uni-kl.de 4812027Sjungma@eit.uni-kl.de#if 0 4912027Sjungma@eit.uni-kl.deb_null: 5012027Sjungma@eit.uni-kl.de#endif 5112027Sjungma@eit.uni-kl.de 5212027Sjungma@eit.uni-kl.de blr 5312027Sjungma@eit.uni-kl.de 5412027Sjungma@eit.uni-kl.de#if 0 5512027Sjungma@eit.uni-kl.de.if 0 5612027Sjungma@eit.uni-kl.de#endif 5712027Sjungma@eit.uni-kl.de} 5812027Sjungma@eit.uni-kl.de#if 0 5912027Sjungma@eit.uni-kl.de.endif 6012027Sjungma@eit.uni-kl.de#endif 6112027Sjungma@eit.uni-kl.de 6212027Sjungma@eit.uni-kl.de 6312027Sjungma@eit.uni-kl.de/* actually the same as the following. How to get "b_null" address? 6412027Sjungma@eit.uni-kl.de * I didnt find the right sintax or the right way. 6512027Sjungma@eit.uni-kl.de * I should take the current PC, then the difference to "b_null" 6612027Sjungma@eit.uni-kl.de * (making the difference beween the labels), perform the sum and go?! 6712027Sjungma@eit.uni-kl.de */ 6812027Sjungma@eit.uni-kl.de#if 0 6912027Sjungma@eit.uni-kl.de.if 0 7012027Sjungma@eit.uni-kl.de#endif 7112027Sjungma@eit.uni-kl.deasm void b_call_reg(long n) 7212027Sjungma@eit.uni-kl.de{ 7312027Sjungma@eit.uni-kl.de#if 0 7412027Sjungma@eit.uni-kl.de.endif 7512027Sjungma@eit.uni-kl.de#endif 7612027Sjungma@eit.uni-kl.de 7712027Sjungma@eit.uni-kl.de#if 0 7812027Sjungma@eit.uni-kl.deb_call_reg: 7912027Sjungma@eit.uni-kl.de_b_call_reg: 8012027Sjungma@eit.uni-kl.de#endif 8112027Sjungma@eit.uni-kl.de 8212027Sjungma@eit.uni-kl.de mflr %r0 8312027Sjungma@eit.uni-kl.de stw %r31,-4(%r1) 8412027Sjungma@eit.uni-kl.de stw %r30,-8(%r1) 8512027Sjungma@eit.uni-kl.de stw %r0,lrsave(%r1) 8612027Sjungma@eit.uni-kl.de stwu %r1,-fsize(%r1) 8712027Sjungma@eit.uni-kl.de mr %r30,%r3 8812027Sjungma@eit.uni-kl.de li %r31,0 8912027Sjungma@eit.uni-kl.de 9012027Sjungma@eit.uni-kl.de b L1 9112027Sjungma@eit.uni-kl.deL0: 9212027Sjungma@eit.uni-kl.de bl b_null 9312027Sjungma@eit.uni-kl.de bl b_null 9412027Sjungma@eit.uni-kl.de bl b_null 9512027Sjungma@eit.uni-kl.de bl b_null 9612027Sjungma@eit.uni-kl.de bl b_null 9712027Sjungma@eit.uni-kl.de 9812027Sjungma@eit.uni-kl.de addi %r31,%r31,5 9912027Sjungma@eit.uni-kl.deL1: 10012027Sjungma@eit.uni-kl.de cmpw %r31,%r30 10112027Sjungma@eit.uni-kl.de blt L0 10212027Sjungma@eit.uni-kl.de 10312027Sjungma@eit.uni-kl.de 10412027Sjungma@eit.uni-kl.de lwz %r0,lrsave+fsize(%r1) 10512027Sjungma@eit.uni-kl.de mtlr %r0 10612027Sjungma@eit.uni-kl.de lwz %r31,-4+fsize(%r1) 10712027Sjungma@eit.uni-kl.de lwz %r30,-8+fsize(%r1) 10812027Sjungma@eit.uni-kl.de addi %r1,%r1,fsize 10912027Sjungma@eit.uni-kl.de blr 11012027Sjungma@eit.uni-kl.de 11112027Sjungma@eit.uni-kl.de#if 0 11212027Sjungma@eit.uni-kl.de.if 0 11312027Sjungma@eit.uni-kl.de#endif 11412027Sjungma@eit.uni-kl.de} 11512027Sjungma@eit.uni-kl.de#if 0 11612027Sjungma@eit.uni-kl.de.endif 11712027Sjungma@eit.uni-kl.de#endif 11812027Sjungma@eit.uni-kl.de 11912027Sjungma@eit.uni-kl.de 12012027Sjungma@eit.uni-kl.de 12112027Sjungma@eit.uni-kl.de 12212027Sjungma@eit.uni-kl.de#if 0 12312027Sjungma@eit.uni-kl.de.if 0 12412027Sjungma@eit.uni-kl.de#endif 12512027Sjungma@eit.uni-kl.deasm void b_call_imm(long n) 12612027Sjungma@eit.uni-kl.de{ 12712027Sjungma@eit.uni-kl.de#if 0 12812027Sjungma@eit.uni-kl.de.endif 12912027Sjungma@eit.uni-kl.de#endif 13012027Sjungma@eit.uni-kl.de 13112027Sjungma@eit.uni-kl.de#if 0 13212027Sjungma@eit.uni-kl.deb_call_imm: 13312027Sjungma@eit.uni-kl.de_b_call_imm: 13412027Sjungma@eit.uni-kl.de#endif 13512027Sjungma@eit.uni-kl.de 13612027Sjungma@eit.uni-kl.de mflr %r0 13712027Sjungma@eit.uni-kl.de stw %r31,-4(%r1) 13812027Sjungma@eit.uni-kl.de stw %r30,-8(%r1) 13912027Sjungma@eit.uni-kl.de stw %r0,lrsave(%r1) 14012027Sjungma@eit.uni-kl.de stwu %r1,-fsize(%r1) 14112027Sjungma@eit.uni-kl.de mr %r30,%r3 14212027Sjungma@eit.uni-kl.de li %r31,0 14312027Sjungma@eit.uni-kl.de 14412027Sjungma@eit.uni-kl.de b L3 14512027Sjungma@eit.uni-kl.deL2: 14612027Sjungma@eit.uni-kl.de bl b_null 14712027Sjungma@eit.uni-kl.de bl b_null 14812027Sjungma@eit.uni-kl.de bl b_null 14912027Sjungma@eit.uni-kl.de bl b_null 15012027Sjungma@eit.uni-kl.de bl b_null 15112027Sjungma@eit.uni-kl.de 15212027Sjungma@eit.uni-kl.de addi %r31,%r31,5 15312027Sjungma@eit.uni-kl.deL3: 15412027Sjungma@eit.uni-kl.de cmpw %r31,%r30 15512027Sjungma@eit.uni-kl.de blt L2 15612027Sjungma@eit.uni-kl.de 15712027Sjungma@eit.uni-kl.de 15812027Sjungma@eit.uni-kl.de lwz %r0,lrsave+fsize(%r1) 15912027Sjungma@eit.uni-kl.de mtlr %r0 16012027Sjungma@eit.uni-kl.de lwz %r31,-4+fsize(%r1) 16112027Sjungma@eit.uni-kl.de lwz %r30,-8+fsize(%r1) 16212027Sjungma@eit.uni-kl.de addi %r1,%r1,fsize 16312027Sjungma@eit.uni-kl.de blr 16412027Sjungma@eit.uni-kl.de 16512027Sjungma@eit.uni-kl.de#if 0 16612027Sjungma@eit.uni-kl.de.if 0 16712027Sjungma@eit.uni-kl.de#endif 16812027Sjungma@eit.uni-kl.de} 16912027Sjungma@eit.uni-kl.de#if 0 17012027Sjungma@eit.uni-kl.de.endif 17112027Sjungma@eit.uni-kl.de#endif 17212027Sjungma@eit.uni-kl.de 17312027Sjungma@eit.uni-kl.de 17412027Sjungma@eit.uni-kl.de 17512027Sjungma@eit.uni-kl.de#if 0 17612027Sjungma@eit.uni-kl.de.if 0 17712027Sjungma@eit.uni-kl.de#endif 17812027Sjungma@eit.uni-kl.deasm void b_add(long n) 17912027Sjungma@eit.uni-kl.de{ 18012027Sjungma@eit.uni-kl.de#if 0 18112027Sjungma@eit.uni-kl.de.endif 18212027Sjungma@eit.uni-kl.de#endif 18312027Sjungma@eit.uni-kl.de 18412027Sjungma@eit.uni-kl.de#if 0 18512027Sjungma@eit.uni-kl.deb_add: 18612027Sjungma@eit.uni-kl.de_b_add: 18712027Sjungma@eit.uni-kl.de#endif 18812027Sjungma@eit.uni-kl.de 18912027Sjungma@eit.uni-kl.de mflr %r0 19012027Sjungma@eit.uni-kl.de stw %r31,-4(%r1) 19112027Sjungma@eit.uni-kl.de stw %r30,-8(%r1) 19212027Sjungma@eit.uni-kl.de stw %r0,lrsave(%r1) 19312027Sjungma@eit.uni-kl.de stwu %r1,-fsize(%r1) 19412027Sjungma@eit.uni-kl.de mr %r30,%r3 19512027Sjungma@eit.uni-kl.de li %r31,0 19612027Sjungma@eit.uni-kl.de 19712027Sjungma@eit.uni-kl.de b L5 19812027Sjungma@eit.uni-kl.deL4: 19912027Sjungma@eit.uni-kl.de addi %r3,%r3,5 20012027Sjungma@eit.uni-kl.de addi %r4,%r4,5 20112027Sjungma@eit.uni-kl.de addi %r5,%r5,5 20212027Sjungma@eit.uni-kl.de addi %r6,%r6,5 20312027Sjungma@eit.uni-kl.de addi %r7,%r7,5 20412027Sjungma@eit.uni-kl.de 20512027Sjungma@eit.uni-kl.de addi %r3,%r3,5 20612027Sjungma@eit.uni-kl.de addi %r4,%r4,5 20712027Sjungma@eit.uni-kl.de addi %r5,%r5,5 20812027Sjungma@eit.uni-kl.de addi %r6,%r6,5 20912027Sjungma@eit.uni-kl.de addi %r7,%r7,5 21012027Sjungma@eit.uni-kl.de 21112027Sjungma@eit.uni-kl.de addi %r31,%r31,10 21212027Sjungma@eit.uni-kl.deL5: 21312027Sjungma@eit.uni-kl.de cmpw %r31,%r30 21412027Sjungma@eit.uni-kl.de blt L4 21512027Sjungma@eit.uni-kl.de 21612027Sjungma@eit.uni-kl.de 21712027Sjungma@eit.uni-kl.de lwz %r0,lrsave+fsize(%r1) 21812027Sjungma@eit.uni-kl.de mtlr %r0 21912027Sjungma@eit.uni-kl.de lwz %r31,-4+fsize(%r1) 22012027Sjungma@eit.uni-kl.de lwz %r30,-8+fsize(%r1) 22112027Sjungma@eit.uni-kl.de addi %r1,%r1,fsize 22212027Sjungma@eit.uni-kl.de blr 22312027Sjungma@eit.uni-kl.de 22412027Sjungma@eit.uni-kl.de#if 0 22512027Sjungma@eit.uni-kl.de.if 0 22612027Sjungma@eit.uni-kl.de#endif 22712027Sjungma@eit.uni-kl.de} 22812027Sjungma@eit.uni-kl.de#if 0 22912027Sjungma@eit.uni-kl.de.endif 23012027Sjungma@eit.uni-kl.de#endif 23112027Sjungma@eit.uni-kl.de 23212027Sjungma@eit.uni-kl.de 23312027Sjungma@eit.uni-kl.de 23412027Sjungma@eit.uni-kl.de#if 0 23512027Sjungma@eit.uni-kl.de.if 0 23612027Sjungma@eit.uni-kl.de#endif 23712027Sjungma@eit.uni-kl.deasm void b_load(long n) 23812027Sjungma@eit.uni-kl.de{ 23912027Sjungma@eit.uni-kl.de#if 0 24012027Sjungma@eit.uni-kl.de.endif 24112027Sjungma@eit.uni-kl.de#endif 24212027Sjungma@eit.uni-kl.de 24312027Sjungma@eit.uni-kl.de#if 0 24412027Sjungma@eit.uni-kl.deb_load: 24512027Sjungma@eit.uni-kl.de_b_load: 24612027Sjungma@eit.uni-kl.de#endif 24712027Sjungma@eit.uni-kl.de 24812027Sjungma@eit.uni-kl.de mflr %r0 24912027Sjungma@eit.uni-kl.de stw %r31,-4(%r1) 25012027Sjungma@eit.uni-kl.de stw %r30,-8(%r1) 25112027Sjungma@eit.uni-kl.de stw %r0,lrsave(%r1) 25212027Sjungma@eit.uni-kl.de stwu %r1,-fsize(%r1) 25312027Sjungma@eit.uni-kl.de mr %r30,%r3 25412027Sjungma@eit.uni-kl.de li %r31,0 25512027Sjungma@eit.uni-kl.de 25612027Sjungma@eit.uni-kl.de b L7 25712027Sjungma@eit.uni-kl.deL6: 25812027Sjungma@eit.uni-kl.de lwz %r3,4(%r1) 25912027Sjungma@eit.uni-kl.de lwz %r4,8(%r1) 26012027Sjungma@eit.uni-kl.de lwz %r5,12(%r1) 26112027Sjungma@eit.uni-kl.de lwz %r6,16(%r1) 26212027Sjungma@eit.uni-kl.de lwz %r7,20(%r1) 26312027Sjungma@eit.uni-kl.de 26412027Sjungma@eit.uni-kl.de lwz %r3,24(%r1) 26512027Sjungma@eit.uni-kl.de lwz %r4,28(%r1) 26612027Sjungma@eit.uni-kl.de lwz %r5,32(%r1) 26712027Sjungma@eit.uni-kl.de lwz %r6,36(%r1) 26812027Sjungma@eit.uni-kl.de lwz %r7,40(%r1) 26912027Sjungma@eit.uni-kl.de 27012027Sjungma@eit.uni-kl.de 27112027Sjungma@eit.uni-kl.de addi %r31,%r31,10 27212027Sjungma@eit.uni-kl.deL7: 27312027Sjungma@eit.uni-kl.de cmpw %r31,%r30 27412027Sjungma@eit.uni-kl.de blt L6 27512027Sjungma@eit.uni-kl.de 27612027Sjungma@eit.uni-kl.de 27712027Sjungma@eit.uni-kl.de lwz %r0,lrsave+fsize(%r1) 27812027Sjungma@eit.uni-kl.de mtlr %r0 27912027Sjungma@eit.uni-kl.de lwz %r31,-4+fsize(%r1) 28012027Sjungma@eit.uni-kl.de lwz %r30,-8+fsize(%r1) 28112027Sjungma@eit.uni-kl.de addi %r1,%r1,fsize 28212027Sjungma@eit.uni-kl.de blr 28312027Sjungma@eit.uni-kl.de 28412027Sjungma@eit.uni-kl.de#if 0 28512027Sjungma@eit.uni-kl.de.if 0 28612027Sjungma@eit.uni-kl.de#endif 28712027Sjungma@eit.uni-kl.de} 28812027Sjungma@eit.uni-kl.de#if 0 28912027Sjungma@eit.uni-kl.de.endif 29012027Sjungma@eit.uni-kl.de#endif 291