• Christophe Leroy's avatar
    powerpc/64: reuse PPC32 static inline flush_dcache_range() · 22e9c88d
    Christophe Leroy authored
    This patch drops the assembly PPC64 version of flush_dcache_range()
    and re-uses the PPC32 static inline version.
    
    With GCC 8.1, the following code is generated:
    
    void flush_test(unsigned long start, unsigned long stop)
    {
    	flush_dcache_range(start, stop);
    }
    
    0000000000000130 <.flush_test>:
     130:	3d 22 00 00 	addis   r9,r2,0
    			132: R_PPC64_TOC16_HA	.data+0x8
     134:	81 09 00 00 	lwz     r8,0(r9)
    			136: R_PPC64_TOC16_LO	.data+0x8
     138:	3d 22 00 00 	addis   r9,r2,0
    			13a: R_PPC64_TOC16_HA	.data+0xc
     13c:	80 e9 00 00 	lwz     r7,0(r9)
    			13e: R_PPC64_TOC16_LO	.data+0xc
     140:	7d 48 00 d0 	neg     r10,r8
     144:	7d 43 18 38 	and     r3,r10,r3
     148:	7c 00 04 ac 	hwsync
     14c:	4c 00 01 2c 	isync
     150:	39 28 ff ff 	addi    r9,r8,-1
     154:	7c 89 22 14 	add     r4,r9,r4
     158:	7c 83 20 50 	subf    r4,r3,r4
     15c:	7c 89 3c 37 	srd.    r9,r4,r7
     160:	41 82 00 1c 	beq     17c <.flush_test+0x4c>
     164:	7d 29 03 a6 	mtctr   r9
     168:	60 00 00 00 	nop
     16c:	60 00 00 00 	nop
     170:	7c 00 18 ac 	dcbf    0,r3
     174:	7c 63 42 14 	add     r3,r3,r8
     178:	42 00 ff f8 	bdnz    170 <.flush_test+0x40>
     17c:	7c 00 04 ac 	hwsync
     180:	4c 00 01 2c 	isync
     184:	4e 80 00 20 	blr
     188:	60 00 00 00 	nop
     18c:	60 00 00 00 	nop
    Signed-off-by: default avatarChristophe Leroy <christophe.leroy@c-s.fr>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    22e9c88d
cache.h 2.78 KB