I disasm the SkJumper_generated.o generated by clang : objdump -d SkJumper_generated.o
00000318 <_sk_xor__vfp4>: 318: f2c70f10 vmov.f32 d16, #1 ; 0x3f800000 31c: e4913004 ldr r3, [r1], #4 320: f2603d83 vsub.f32 d19, d16, d3 324: f2604d87 vsub.f32 d20, d16, d7 328: f3430d94 vmul.f32 d16, d19, d4 32c: f3431d95 vmul.f32 d17, d19, d5 330: f3432d96 vmul.f32 d18, d19, d6 334: f3433d97 vmul.f32 d19, d19, d7 338: f2440c90 vfma.f32 d16, d20, d0 33c: f2441c91 vfma.f32 d17, d20, d1 340: f2442c92 vfma.f32 d18, d20, d2 344: f2443c93 vfma.f32 d19, d20, d3 348: f22001b0 vorr d0, d16, d16 34c: f22111b1 vorr d1, d17, d17 350: f22221b2 vorr d2, d18, d18 354: f22331b3 vorr d3, d19, d19 358: e12fff13 bx r3
And orriginal SkJumper_generated.S have HIDDEN _sk_xor__vfp4 .globl _sk_xor__vfp4 _sk_xor__vfp4: .long 0xf2c70f10 // vmov.f32 d16, #1 .long 0xe4913004 // ldr r3, [r1], #4 .long 0xf2603d83 // vsub.f32 d19, d16, d3 .long 0xf2604d87 // vsub.f32 d20, d16, d7 .long 0xf3430d94 // vmul.f32 d16, d19, d4 .long 0xf3431d95 // vmul.f32 d17, d19, d5 .long 0xf3432d96 // vmul.f32 d18, d19, d6 .long 0xf3433d97 // vmul.f32 d19, d19, d7 .long 0xf2440c90 // vfma.f32 d16, d20, d0 .long 0xf2441c91 // vfma.f32 d17, d20, d1 .long 0xf2442c92 // vfma.f32 d18, d20, d2 .long 0xf2443c93 // vfma.f32 d19, d20, d3 .long 0xf22001b0 // vorr d0, d16, d16 .long 0xf22111b1 // vorr d1, d17, d17 .long 0xf22221b2 // vorr d2, d18, d18 .long 0xf22331b3 // vorr d3, d19, d19 .long 0xe12fff13 // bx r3
So it looks the same .I do not have one SkJumper_generated.o build by gcc to compare it with . Somebody have one ?
I disasm the SkJumper_ generated. o generated by clang : objdump -d SkJumper_ generated. o
00000318 <_sk_xor__vfp4>:
318: f2c70f10 vmov.f32 d16, #1 ; 0x3f800000
31c: e4913004 ldr r3, [r1], #4
320: f2603d83 vsub.f32 d19, d16, d3
324: f2604d87 vsub.f32 d20, d16, d7
328: f3430d94 vmul.f32 d16, d19, d4
32c: f3431d95 vmul.f32 d17, d19, d5
330: f3432d96 vmul.f32 d18, d19, d6
334: f3433d97 vmul.f32 d19, d19, d7
338: f2440c90 vfma.f32 d16, d20, d0
33c: f2441c91 vfma.f32 d17, d20, d1
340: f2442c92 vfma.f32 d18, d20, d2
344: f2443c93 vfma.f32 d19, d20, d3
348: f22001b0 vorr d0, d16, d16
34c: f22111b1 vorr d1, d17, d17
350: f22221b2 vorr d2, d18, d18
354: f22331b3 vorr d3, d19, d19
358: e12fff13 bx r3
And orriginal SkJumper_ generated. S have
HIDDEN _sk_xor__vfp4
.globl _sk_xor__vfp4
_sk_xor__vfp4:
.long 0xf2c70f10 // vmov.f32 d16, #1
.long 0xe4913004 // ldr r3, [r1], #4
.long 0xf2603d83 // vsub.f32 d19, d16, d3
.long 0xf2604d87 // vsub.f32 d20, d16, d7
.long 0xf3430d94 // vmul.f32 d16, d19, d4
.long 0xf3431d95 // vmul.f32 d17, d19, d5
.long 0xf3432d96 // vmul.f32 d18, d19, d6
.long 0xf3433d97 // vmul.f32 d19, d19, d7
.long 0xf2440c90 // vfma.f32 d16, d20, d0
.long 0xf2441c91 // vfma.f32 d17, d20, d1
.long 0xf2442c92 // vfma.f32 d18, d20, d2
.long 0xf2443c93 // vfma.f32 d19, d20, d3
.long 0xf22001b0 // vorr d0, d16, d16
.long 0xf22111b1 // vorr d1, d17, d17
.long 0xf22221b2 // vorr d2, d18, d18
.long 0xf22331b3 // vorr d3, d19, d19
.long 0xe12fff13 // bx r3
So it looks the same .I do not have one SkJumper_ generated. o build by gcc to compare it with .
Somebody have one ?