📄 sad_altivec.s
字号:
.file "sad_altivec.c"
gcc2_compiled.:
.section ".rodata"
.align 4
.type perms,@object
.size perms,32
perms:
.long 66051
.long 67438087
.long 269554195
.long 336926231
.long 134810123
.long 202182159
.long 404298267
.long 471670303
.section ".text"
.align 2
.globl sad16_altivec
.type sad16_altivec,@function
sad16_altivec:
stwu %r1,-48(%r1)
addi %r9,%r4,16
lvx %v13,0,%r4
lvx %v0,0,%r9
rlwinm %r5,%r5,0,0,27
lvx %v1,0,%r3
lvsl %v16,0,%r4
add %r4,%r4,%r5
addi %r9,%r4,16
lvx %v11,0,%r4
vperm %v19,%v13,%v0,%v16
lvx %v12,0,%r9
add %r3,%r3,%r5
lvx %v0,0,%r3
add %r4,%r4,%r5
vminub %v18,%v19,%v1
addi %r9,%r4,16
lvx %v9,0,%r4
vmaxub %v2,%v19,%v1
lvx %v10,0,%r9
add %r3,%r3,%r5
vperm %v19,%v11,%v12,%v16
lvx %v13,0,%r3
add %r4,%r4,%r5
vsububm %v2,%v2,%v18
addi %r9,%r4,16
lvx %v11,0,%r4
vminub %v18,%v19,%v0
lvx %v12,0,%r9
add %r3,%r3,%r5
vsum4ubs %v17,%v2,%v31
lvx %v1,0,%r3
addi %r9,%r1,16
vmaxub %v2,%v19,%v0
stw %r6,16(%r1)
vperm %v19,%v9,%v10,%v16
lvx %v0,0,%r9
add %r3,%r3,%r5
vsububm %v2,%v2,%v18
add %r4,%r4,%r5
vminub %v18,%v19,%v13
vsum4ubs %v17,%v2,%v17
vmaxub %v2,%v19,%v13
vspltw %v7,%v0,0
vperm %v19,%v11,%v12,%v16
stvx %v7,0,%r9
vsububm %v2,%v2,%v18
vminub %v18,%v19,%v1
vsum4ubs %v17,%v2,%v17
vmaxub %v2,%v19,%v1
vsububm %v2,%v2,%v18
vsum4ubs %v17,%v2,%v17
vsumsws %v0,%v17,%v31
vcmpgtsw. %v1,%v7,%v0
bc 12,26,.L23
addi %r9,%r4,16
lvx %v1,0,%r4
lvx %v0,0,%r9
add %r4,%r4,%r5
lvx %v13,0,%r3
addi %r9,%r4,16
lvx %v12,0,%r4
add %r3,%r3,%r5
lvx %v11,0,%r9
add %r4,%r4,%r5
vperm %v19,%v1,%v0,%v16
lvx %v10,0,%r3
addi %r9,%r4,16
lvx %v8,0,%r4
add %r3,%r3,%r5
vminub %v18,%v19,%v13
lvx %v9,0,%r9
add %r4,%r4,%r5
vmaxub %v2,%v19,%v13
lvx %v1,0,%r3
addi %r9,%r4,16
vperm %v19,%v12,%v11,%v16
lvx %v13,0,%r9
add %r3,%r3,%r5
vsububm %v2,%v2,%v18
lvx %v12,0,%r4
vminub %v18,%v19,%v10
lvx %v0,0,%r3
add %r4,%r4,%r5
vsum4ubs %v17,%v2,%v17
add %r3,%r3,%r5
vmaxub %v2,%v19,%v10
vperm %v19,%v8,%v9,%v16
vsububm %v2,%v2,%v18
vminub %v18,%v19,%v1
vsum4ubs %v17,%v2,%v17
vmaxub %v2,%v19,%v1
vperm %v19,%v12,%v13,%v16
vsububm %v2,%v2,%v18
vminub %v18,%v19,%v0
vsum4ubs %v17,%v2,%v17
vmaxub %v2,%v19,%v0
vsububm %v2,%v2,%v18
vsum4ubs %v17,%v2,%v17
vsumsws %v0,%v17,%v31
vcmpgtsw. %v7,%v7,%v0
bc 12,26,.L23
addi %r9,%r4,16
lvx %v1,0,%r4
lvx %v0,0,%r9
add %r4,%r4,%r5
lvx %v13,0,%r3
addi %r9,%r4,16
lvx %v11,0,%r9
add %r3,%r3,%r5
lvx %v12,0,%r4
vperm %v19,%v1,%v0,%v16
lvx %v10,0,%r3
add %r4,%r4,%r5
addi %r9,%r4,16
lvx %v9,0,%r4
vminub %v18,%v19,%v13
lvx %v1,0,%r9
add %r3,%r3,%r5
vmaxub %v2,%v19,%v13
lvx %v0,0,%r3
add %r4,%r4,%r5
vperm %v19,%v12,%v11,%v16
addi %r9,%r4,16
vsububm %v2,%v2,%v18
lvx %v11,0,%r4
add %r3,%r3,%r5
vminub %v18,%v19,%v10
lvx %v12,0,%r9
add %r4,%r4,%r5
vsum4ubs %v17,%v2,%v17
lvx %v8,0,%r3
addi %r9,%r4,16
vmaxub %v2,%v19,%v10
lvx %v3,0,%r4
add %r3,%r3,%r5
vperm %v19,%v9,%v1,%v16
lvx %v4,0,%r9
add %r4,%r4,%r5
vsububm %v2,%v2,%v18
lvx %v10,0,%r3
addi %r9,%r4,16
vminub %v18,%v19,%v0
lvx %v5,0,%r4
add %r3,%r3,%r5
vsum4ubs %v17,%v2,%v17
lvx %v6,0,%r9
add %r4,%r4,%r5
vmaxub %v2,%v19,%v0
lvx %v13,0,%r3
addi %r9,%r4,16
vperm %v19,%v11,%v12,%v16
lvx %v7,0,%r4
add %r3,%r3,%r5
vsububm %v2,%v2,%v18
lvx %v9,0,%r9
add %r4,%r4,%r5
vminub %v18,%v19,%v8
lvx %v1,0,%r3
addi %r9,%r4,16
vsum4ubs %v17,%v2,%v17
lvx %v11,0,%r4
vmaxub %v2,%v19,%v8
lvx %v12,0,%r9
vperm %v19,%v3,%v4,%v16
lvx %v0,%r3,%r5
vsububm %v2,%v2,%v18
vminub %v18,%v19,%v10
vsum4ubs %v17,%v2,%v17
vmaxub %v2,%v19,%v10
vperm %v19,%v5,%v6,%v16
vsububm %v2,%v2,%v18
vminub %v18,%v19,%v13
vsum4ubs %v17,%v2,%v17
vmaxub %v2,%v19,%v13
vperm %v19,%v7,%v9,%v16
vsububm %v2,%v2,%v18
vminub %v18,%v19,%v1
vsum4ubs %v17,%v2,%v17
vmaxub %v2,%v19,%v1
vperm %v19,%v11,%v12,%v16
vsububm %v2,%v2,%v18
vminub %v18,%v19,%v0
vsum4ubs %v17,%v2,%v17
vmaxub %v2,%v19,%v0
vsububm %v2,%v2,%v18
vsum4ubs %v17,%v2,%v17
vsumsws %v0,%v17,%v31
.L23:
vspltw %v0,%v0,3
addi %r0,%r1,32
stvewx %v0,0,%r0
lwz %r3,32(%r1)
la %r1,48(%r1)
blr
.Lfe1:
.size sad16_altivec,.Lfe1-sad16_altivec
.align 2
.globl sad8_altivec
.type sad8_altivec,@function
sad8_altivec:
stwu %r1,-16(%r1)
andi. %r0,%r3,8
vsldoi %v16,%v30,%v30,0
bc 4,2,.L26
vsldoi %v16,%v29,%v29,0
.L26:
srwi %r5,%r5,4
lvx %v8,0,%r4
vsldoi %v6,%v29,%v29,0
slwi %r10,%r5,4
lvx %v11,0,%r3
add %r9,%r10,%r4
lvx %v10,%r10,%r4
addi %r11,%r4,16
lvx %v0,%r10,%r3
addi %r9,%r9,16
lvx %v12,0,%r11
lvx %v13,0,%r9
lvsl %v1,0,%r4
slwi %r0,%r5,5
add %r4,%r4,%r0
vperm %v18,%v11,%v0,%v16
add %r9,%r10,%r4
vperm %v3,%v8,%v12,%v1
lvx %v9,0,%r4
vperm %v17,%v10,%v13,%v1
addi %r11,%r4,16
lvx %v12,%r10,%r4
addi %r9,%r9,16
lvx %v13,0,%r11
lvx %v0,0,%r9
vperm %v3,%v3,%v17,%v6
add %r3,%r3,%r0
add %r4,%r4,%r0
lvx %v10,0,%r3
lvx %v11,%r10,%r3
vminub %v19,%v18,%v3
add %r9,%r10,%r4
vmaxub %v2,%v18,%v3
addi %r11,%r4,16
vperm %v17,%v12,%v0,%v1
addi %r9,%r9,16
lvx %v4,0,%r11
vperm %v3,%v9,%v13,%v1
vsububm %v2,%v2,%v19
lvx %v5,0,%r9
lvx %v9,0,%r4
vperm %v18,%v10,%v11,%v16
add %r3,%r3,%r0
lvx %v13,%r10,%r4
vperm %v3,%v3,%v17,%v6
vsum4ubs %v0,%v2,%v31
add %r4,%r4,%r0
lvx %v12,%r10,%r3
lvx %v8,0,%r3
vminub %v19,%v18,%v3
add %r9,%r10,%r4
vmaxub %v2,%v18,%v3
addi %r9,%r9,16
lvx %v7,%r10,%r4
vperm %v17,%v13,%v5,%v1
addi %r11,%r4,16
lvx %v10,0,%r9
vperm %v3,%v9,%v4,%v1
vsububm %v2,%v2,%v19
lvx %v11,0,%r4
lvx %v9,0,%r11
vperm %v18,%v8,%v12,%v16
add %r3,%r3,%r0
vperm %v3,%v3,%v17,%v6
vsum4ubs %v0,%v2,%v0
lvx %v12,%r10,%r3
lvx %v13,0,%r3
vperm %v17,%v7,%v10,%v1
addi %r8,%r1,8
vminub %v19,%v18,%v3
vmaxub %v2,%v18,%v3
vperm %v3,%v11,%v9,%v1
vsububm %v2,%v2,%v19
vperm %v18,%v13,%v12,%v16
vperm %v3,%v3,%v17,%v6
vsum4ubs %v0,%v2,%v0
vminub %v19,%v18,%v3
vmaxub %v2,%v18,%v3
vsububm %v2,%v2,%v19
vsum4ubs %v0,%v2,%v0
vsumsws %v0,%v0,%v31
vspltw %v0,%v0,3
stvewx %v0,0,%r8
lwz %r3,8(%r1)
la %r1,16(%r1)
blr
.Lfe2:
.size sad8_altivec,.Lfe2-sad8_altivec
.align 2
.globl dev16_altivec
.type dev16_altivec,@function
dev16_altivec:
stwu %r1,-16(%r1)
lvx %v13,0,%r3
rlwinm %r4,%r4,0,0,27
vspltisb %v1,14
add %r3,%r3,%r4
lvx %v12,0,%r3
addi %r0,%r1,8
add %r3,%r3,%r4
vsum4ubs %v0,%v13,%v31
lvx %v11,0,%r3
add %r3,%r3,%r4
lvx %v10,0,%r3
add %r3,%r3,%r4
lvx %v9,0,%r3
vsum4ubs %v0,%v12,%v0
add %r3,%r3,%r4
lvx %v8,0,%r3
add %r3,%r3,%r4
lvx %v7,0,%r3
add %r3,%r3,%r4
vsum4ubs %v0,%v11,%v0
lvx %v6,0,%r3
add %r3,%r3,%r4
lvx %v5,0,%r3
add %r3,%r3,%r4
lvx %v4,0,%r3
vsum4ubs %v0,%v10,%v0
add %r3,%r3,%r4
lvx %v3,0,%r3
add %r3,%r3,%r4
lvx %v2,0,%r3
add %r3,%r3,%r4
vsum4ubs %v0,%v9,%v0
lvx %v19,0,%r3
add %r3,%r3,%r4
lvx %v18,0,%r3
add %r3,%r3,%r4
lvx %v17,0,%r3
vsum4ubs %v0,%v8,%v0
lvx %v16,%r3,%r4
vsum4ubs %v0,%v7,%v0
vsum4ubs %v0,%v6,%v0
vsum4ubs %v0,%v5,%v0
vsum4ubs %v0,%v4,%v0
vsum4ubs %v0,%v3,%v0
vsum4ubs %v0,%v2,%v0
vsum4ubs %v0,%v19,%v0
vsum4ubs %v0,%v18,%v0
vsum4ubs %v0,%v17,%v0
vsum4ubs %v0,%v16,%v0
vsumsws %v0,%v0,%v31
vperm %v1,%v0,%v0,%v1
vminub %v15,%v13,%v1
vmaxub %v13,%v13,%v1
vsububm %v13,%v13,%v15
vminub %v15,%v12,%v1
vsum4ubs %v0,%v13,%v31
vmaxub %v13,%v12,%v1
vsububm %v13,%v13,%v15
vminub %v15,%v11,%v1
vsum4ubs %v0,%v13,%v0
vmaxub %v13,%v11,%v1
vsububm %v13,%v13,%v15
vminub %v15,%v10,%v1
vsum4ubs %v0,%v13,%v0
vmaxub %v13,%v10,%v1
vsububm %v13,%v13,%v15
vminub %v15,%v9,%v1
vsum4ubs %v0,%v13,%v0
vmaxub %v13,%v9,%v1
vsububm %v13,%v13,%v15
vminub %v15,%v8,%v1
vsum4ubs %v0,%v13,%v0
vmaxub %v13,%v8,%v1
vsububm %v13,%v13,%v15
vminub %v15,%v7,%v1
vsum4ubs %v0,%v13,%v0
vmaxub %v13,%v7,%v1
vsububm %v13,%v13,%v15
vminub %v15,%v6,%v1
vsum4ubs %v0,%v13,%v0
vmaxub %v13,%v6,%v1
vsububm %v13,%v13,%v15
vminub %v15,%v5,%v1
vsum4ubs %v0,%v13,%v0
vmaxub %v13,%v5,%v1
vsububm %v13,%v13,%v15
vminub %v15,%v4,%v1
vsum4ubs %v0,%v13,%v0
vmaxub %v13,%v4,%v1
vsububm %v13,%v13,%v15
vminub %v15,%v3,%v1
vsum4ubs %v0,%v13,%v0
vmaxub %v13,%v3,%v1
vsububm %v13,%v13,%v15
vminub %v15,%v2,%v1
vsum4ubs %v0,%v13,%v0
vmaxub %v13,%v2,%v1
vsububm %v13,%v13,%v15
vminub %v15,%v19,%v1
vsum4ubs %v0,%v13,%v0
vmaxub %v13,%v19,%v1
vsububm %v13,%v13,%v15
vminub %v15,%v18,%v1
vsum4ubs %v0,%v13,%v0
vmaxub %v13,%v18,%v1
vsububm %v13,%v13,%v15
vminub %v15,%v17,%v1
vsum4ubs %v0,%v13,%v0
vmaxub %v13,%v17,%v1
vsububm %v13,%v13,%v15
vminub %v15,%v16,%v1
vsum4ubs %v0,%v13,%v0
vmaxub %v13,%v16,%v1
vsububm %v13,%v13,%v15
vsum4ubs %v0,%v13,%v0
vsumsws %v0,%v0,%v31
vspltw %v0,%v0,3
stvewx %v0,0,%r0
lwz %r3,8(%r1)
la %r1,16(%r1)
blr
.Lfe3:
.size dev16_altivec,.Lfe3-dev16_altivec
.align 2
.globl sadInit_altivec
.type sadInit_altivec,@function
sadInit_altivec:
lis %r9,perms@ha
vspltisw %v31,0
la %r9,perms@l(%r9)
addi %r11,%r9,16
lvx %v29,0,%r9
lvx %v30,0,%r11
blr
.Lfe4:
.size sadInit_altivec,.Lfe4-sadInit_altivec
.ident "GCC: (GNU) 2.95.3 20010111 (BLL/AltiVec prerelease/franzo/20010111)"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -