📄 simple_idct_armv5te.s
字号:
cmp a3, #255 movgt a3, #255 sub a4, a4, v2 movs a4, a4, asr #20 movmi a4, #0 cmp a4, #255 ldr v1, [sp, #28] movgt a4, #255 strh a2, [v1] add a2, v1, #2 str a2, [sp, #28] orr a2, a3, a4, lsl #8 rsb v2, lr, lr, lsl #3 ldmfd sp!, {a3, a4} strh a2, [v2, v1]! sub a2, a3, v3 movs a2, a2, asr #20 movmi a2, #0 cmp a2, #255 movgt a2, #255 sub ip, a4, v4 movs ip, ip, asr #20 movmi ip, #0 cmp ip, #255 movgt ip, #255 orr a2, a2, ip, lsl #8 strh a2, [v1, lr]! add a3, a3, v3 movs a2, a3, asr #20 movmi a2, #0 cmp a2, #255 movgt a2, #255 add a4, a4, v4 movs a4, a4, asr #20 movmi a4, #0 cmp a4, #255 movgt a4, #255 orr a2, a2, a4, lsl #8 ldmfd sp!, {a3, a4} strh a2, [v2, -lr]! add a2, a3, v5 movs a2, a2, asr #20 movmi a2, #0 cmp a2, #255 movgt a2, #255 add ip, a4, v6 movs ip, ip, asr #20 movmi ip, #0 cmp ip, #255 movgt ip, #255 orr a2, a2, ip, lsl #8 strh a2, [v1, lr]! sub a3, a3, v5 movs a2, a3, asr #20 movmi a2, #0 cmp a2, #255 movgt a2, #255 sub a4, a4, v6 movs a4, a4, asr #20 movmi a4, #0 cmp a4, #255 movgt a4, #255 orr a2, a2, a4, lsl #8 ldmfd sp!, {a3, a4} strh a2, [v2, -lr]! add a2, a3, v7 movs a2, a2, asr #20 movmi a2, #0 cmp a2, #255 movgt a2, #255 add ip, a4, fp movs ip, ip, asr #20 movmi ip, #0 cmp ip, #255 movgt ip, #255 orr a2, a2, ip, lsl #8 strh a2, [v1, lr] sub a3, a3, v7 movs a2, a3, asr #20 movmi a2, #0 cmp a2, #255 movgt a2, #255 sub a4, a4, fp movs a4, a4, asr #20 movmi a4, #0 cmp a4, #255 movgt a4, #255 orr a2, a2, a4, lsl #8 strh a2, [v2, -lr] ldr pc, [sp], #4 .endfunc .align .type idct_col_add_armv5te, %function .func idct_col_add_armv5teidct_col_add_armv5te: str lr, [sp, #-4]! idct_col ldr lr, [sp, #36] ldmfd sp!, {a3, a4} ldrh ip, [lr] add a2, a3, v1 mov a2, a2, asr #20 sub a3, a3, v1 and v1, ip, #255 adds a2, a2, v1 movmi a2, #0 cmp a2, #255 movgt a2, #255 add v1, a4, v2 mov v1, v1, asr #20 adds v1, v1, ip, lsr #8 movmi v1, #0 cmp v1, #255 movgt v1, #255 orr a2, a2, v1, lsl #8 ldr v1, [sp, #32] sub a4, a4, v2 rsb v2, v1, v1, lsl #3 ldrh ip, [v2, lr]! strh a2, [lr] mov a3, a3, asr #20 and a2, ip, #255 adds a3, a3, a2 movmi a3, #0 cmp a3, #255 movgt a3, #255 mov a4, a4, asr #20 adds a4, a4, ip, lsr #8 movmi a4, #0 cmp a4, #255 movgt a4, #255 add a2, lr, #2 str a2, [sp, #28] orr a2, a3, a4, lsl #8 strh a2, [v2] ldmfd sp!, {a3, a4} ldrh ip, [lr, v1]! sub a2, a3, v3 mov a2, a2, asr #20 add a3, a3, v3 and v3, ip, #255 adds a2, a2, v3 movmi a2, #0 cmp a2, #255 movgt a2, #255 sub v3, a4, v4 mov v3, v3, asr #20 adds v3, v3, ip, lsr #8 movmi v3, #0 cmp v3, #255 movgt v3, #255 orr a2, a2, v3, lsl #8 add a4, a4, v4 ldrh ip, [v2, -v1]! strh a2, [lr] mov a3, a3, asr #20 and a2, ip, #255 adds a3, a3, a2 movmi a3, #0 cmp a3, #255 movgt a3, #255 mov a4, a4, asr #20 adds a4, a4, ip, lsr #8 movmi a4, #0 cmp a4, #255 movgt a4, #255 orr a2, a3, a4, lsl #8 strh a2, [v2] ldmfd sp!, {a3, a4} ldrh ip, [lr, v1]! add a2, a3, v5 mov a2, a2, asr #20 sub a3, a3, v5 and v3, ip, #255 adds a2, a2, v3 movmi a2, #0 cmp a2, #255 movgt a2, #255 add v3, a4, v6 mov v3, v3, asr #20 adds v3, v3, ip, lsr #8 movmi v3, #0 cmp v3, #255 movgt v3, #255 orr a2, a2, v3, lsl #8 sub a4, a4, v6 ldrh ip, [v2, -v1]! strh a2, [lr] mov a3, a3, asr #20 and a2, ip, #255 adds a3, a3, a2 movmi a3, #0 cmp a3, #255 movgt a3, #255 mov a4, a4, asr #20 adds a4, a4, ip, lsr #8 movmi a4, #0 cmp a4, #255 movgt a4, #255 orr a2, a3, a4, lsl #8 strh a2, [v2] ldmfd sp!, {a3, a4} ldrh ip, [lr, v1]! add a2, a3, v7 mov a2, a2, asr #20 sub a3, a3, v7 and v3, ip, #255 adds a2, a2, v3 movmi a2, #0 cmp a2, #255 movgt a2, #255 add v3, a4, fp mov v3, v3, asr #20 adds v3, v3, ip, lsr #8 movmi v3, #0 cmp v3, #255 movgt v3, #255 orr a2, a2, v3, lsl #8 sub a4, a4, fp ldrh ip, [v2, -v1]! strh a2, [lr] mov a3, a3, asr #20 and a2, ip, #255 adds a3, a3, a2 movmi a3, #0 cmp a3, #255 movgt a3, #255 mov a4, a4, asr #20 adds a4, a4, ip, lsr #8 movmi a4, #0 cmp a4, #255 movgt a4, #255 orr a2, a3, a4, lsl #8 strh a2, [v2] ldr pc, [sp], #4 .endfunc .align .global simple_idct_armv5te .type simple_idct_armv5te, %function .func simple_idct_armv5tesimple_idct_armv5te: stmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, lr} bl idct_row_armv5te add a1, a1, #16 bl idct_row_armv5te add a1, a1, #16 bl idct_row_armv5te add a1, a1, #16 bl idct_row_armv5te add a1, a1, #16 bl idct_row_armv5te add a1, a1, #16 bl idct_row_armv5te add a1, a1, #16 bl idct_row_armv5te add a1, a1, #16 bl idct_row_armv5te sub a1, a1, #(16*7) bl idct_col_armv5te add a1, a1, #4 bl idct_col_armv5te add a1, a1, #4 bl idct_col_armv5te add a1, a1, #4 bl idct_col_armv5te ldmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc} .endfunc .align .global simple_idct_add_armv5te .type simple_idct_add_armv5te, %function .func simple_idct_add_armv5tesimple_idct_add_armv5te: stmfd sp!, {a1, a2, v1, v2, v3, v4, v5, v6, v7, fp, lr} mov a1, a3 bl idct_row_armv5te add a1, a1, #16 bl idct_row_armv5te add a1, a1, #16 bl idct_row_armv5te add a1, a1, #16 bl idct_row_armv5te add a1, a1, #16 bl idct_row_armv5te add a1, a1, #16 bl idct_row_armv5te add a1, a1, #16 bl idct_row_armv5te add a1, a1, #16 bl idct_row_armv5te sub a1, a1, #(16*7) bl idct_col_add_armv5te add a1, a1, #4 bl idct_col_add_armv5te add a1, a1, #4 bl idct_col_add_armv5te add a1, a1, #4 bl idct_col_add_armv5te add sp, sp, #8 ldmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc} .endfunc .align .global simple_idct_put_armv5te .type simple_idct_put_armv5te, %function .func simple_idct_put_armv5tesimple_idct_put_armv5te: stmfd sp!, {a1, a2, v1, v2, v3, v4, v5, v6, v7, fp, lr} mov a1, a3 bl idct_row_armv5te add a1, a1, #16 bl idct_row_armv5te add a1, a1, #16 bl idct_row_armv5te add a1, a1, #16 bl idct_row_armv5te add a1, a1, #16 bl idct_row_armv5te add a1, a1, #16 bl idct_row_armv5te add a1, a1, #16 bl idct_row_armv5te add a1, a1, #16 bl idct_row_armv5te sub a1, a1, #(16*7) bl idct_col_put_armv5te add a1, a1, #4 bl idct_col_put_armv5te add a1, a1, #4 bl idct_col_put_armv5te add a1, a1, #4 bl idct_col_put_armv5te add sp, sp, #8 ldmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc} .endfunc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -