On 10/18/2019 12:52 PM, Rasmus Villemoes wrote:
In preparation for allowing to build QE support for architectures other than PPC, replace the ppc-specific io accessors. Done via
This patch is not transparent in terms of performance, functions get changed significantly.
Before the patch: 00000330 <ucc_fast_enable>: 330: 81 43 00 04 lwz r10,4(r3) 334: 7c 00 04 ac hwsync 338: 81 2a 00 00 lwz r9,0(r10) 33c: 0c 09 00 00 twi 0,r9,0 340: 4c 00 01 2c isync 344: 70 88 00 02 andi. r8,r4,2 348: 41 82 00 10 beq 358 <ucc_fast_enable+0x28> 34c: 39 00 00 01 li r8,1 350: 91 03 00 10 stw r8,16(r3) 354: 61 29 00 10 ori r9,r9,16 358: 70 88 00 01 andi. r8,r4,1 35c: 41 82 00 10 beq 36c <ucc_fast_enable+0x3c> 360: 39 00 00 01 li r8,1 364: 91 03 00 14 stw r8,20(r3) 368: 61 29 00 20 ori r9,r9,32 36c: 7c 00 04 ac hwsync 370: 91 2a 00 00 stw r9,0(r10) 374: 4e 80 00 20 blr After the patch: 0000030c <ucc_fast_enable>: 30c: 94 21 ff e0 stwu r1,-32(r1) 310: 7c 08 02 a6 mflr r0 314: bf a1 00 14 stmw r29,20(r1) 318: 7c 9f 23 78 mr r31,r4 31c: 90 01 00 24 stw r0,36(r1) 320: 7c 7e 1b 78 mr r30,r3 324: 83 a3 00 04 lwz r29,4(r3) 328: 7f a3 eb 78 mr r3,r29 32c: 48 00 00 01 bl 32c <ucc_fast_enable+0x20> 32c: R_PPC_REL24 ioread32be 330: 73 e9 00 02 andi. r9,r31,2 334: 41 82 00 10 beq 344 <ucc_fast_enable+0x38> 338: 39 20 00 01 li r9,1 33c: 91 3e 00 10 stw r9,16(r30) 340: 60 63 00 10 ori r3,r3,16 344: 73 e9 00 01 andi. r9,r31,1 348: 41 82 00 10 beq 358 <ucc_fast_enable+0x4c> 34c: 39 20 00 01 li r9,1 350: 91 3e 00 14 stw r9,20(r30) 354: 60 63 00 20 ori r3,r3,32 358: 80 01 00 24 lwz r0,36(r1) 35c: 7f a4 eb 78 mr r4,r29 360: bb a1 00 14 lmw r29,20(r1) 364: 7c 08 03 a6 mtlr r0 368: 38 21 00 20 addi r1,r1,32 36c: 48 00 00 00 b 36c <ucc_fast_enable+0x60> 36c: R_PPC_REL24 iowrite32be Christophe