📄 ltp_cortexm3.s
字号:
SECTION .text:CODE(2)
EXPORT inner_prod
#define x R0 // input array x[]
#define c R1 // input array c[]
#define N R2 // number of samples (a multiple of 4) // 40 samples: the lpcsize == 40 for narrowband mode, submode3
#define acc R3 // accumulator
#define sum R6 // sum
#define x_0 R4 // elements from array x[]
#define x_1 R5
#define c_0 R7 // elements from array c[]
#define c_1 R8
inner_prod
PUSH {r4-r8, lr}
MOV sum, #0
Loop
MOV acc, #0
LDRSH x_0, [x], #2
LDRSH c_0, [c], #2
MLA acc, x_0, c_0, acc
LDRSH x_1, [x], #2
LDRSH c_1, [c], #2
MLA acc, x_1, c_1, acc
LDRSH x_0, [x], #2
LDRSH c_0, [c], #2
MLA acc, x_0, c_0, acc
LDRSH x_1, [x], #2
LDRSH c_1, [c], #2
MLA acc, x_1, c_1, acc
ADD sum,sum,acc,ASR #6
MOV acc, #0
LDRSH x_0, [x], #2
LDRSH c_0, [c], #2
MLA acc, x_0, c_0, acc
LDRSH x_1, [x], #2
LDRSH c_1, [c], #2
MLA acc, x_1, c_1, acc
LDRSH x_0, [x], #2
LDRSH c_0, [c], #2
MLA acc, x_0, c_0, acc
LDRSH x_1, [x], #2
LDRSH c_1, [c], #2
MLA acc, x_1, c_1, acc
ADD sum,sum,acc,ASR #6
MOV acc, #0
LDRSH x_0, [x], #2
LDRSH c_0, [c], #2
MLA acc, x_0, c_0, acc
LDRSH x_1, [x], #2
LDRSH c_1, [c], #2
MLA acc, x_1, c_1, acc
LDRSH x_0, [x], #2
LDRSH c_0, [c], #2
MLA acc, x_0, c_0, acc
LDRSH x_1, [x], #2
LDRSH c_1, [c], #2
MLA acc, x_1, c_1, acc
ADD sum,sum,acc,ASR #6
MOV acc, #0
LDRSH x_0, [x], #2
LDRSH c_0, [c], #2
MLA acc, x_0, c_0, acc
LDRSH x_1, [x], #2
LDRSH c_1, [c], #2
MLA acc, x_1, c_1, acc
LDRSH x_0, [x], #2
LDRSH c_0, [c], #2
MLA acc, x_0, c_0, acc
LDRSH x_1, [x], #2
LDRSH c_1, [c], #2
MLA acc, x_1, c_1, acc
ADD sum,sum,acc,ASR #6
MOV acc, #0
LDRSH x_0, [x], #2
LDRSH c_0, [c], #2
MLA acc, x_0, c_0, acc
LDRSH x_1, [x], #2
LDRSH c_1, [c], #2
MLA acc, x_1, c_1, acc
LDRSH x_0, [x], #2
LDRSH c_0, [c], #2
MLA acc, x_0, c_0, acc
LDRSH x_1, [x], #2
LDRSH c_1, [c], #2
MLA acc, x_1, c_1, acc
ADD sum,sum,acc,ASR #6
MOV acc, #0
LDRSH x_0, [x], #2
LDRSH c_0, [c], #2
MLA acc, x_0, c_0, acc
LDRSH x_1, [x], #2
LDRSH c_1, [c], #2
MLA acc, x_1, c_1, acc
LDRSH x_0, [x], #2
LDRSH c_0, [c], #2
MLA acc, x_0, c_0, acc
LDRSH x_1, [x], #2
LDRSH c_1, [c], #2
MLA acc, x_1, c_1, acc
ADD sum,sum,acc,ASR #6
MOV acc, #0
LDRSH x_0, [x], #2
LDRSH c_0, [c], #2
MLA acc, x_0, c_0, acc
LDRSH x_1, [x], #2
LDRSH c_1, [c], #2
MLA acc, x_1, c_1, acc
LDRSH x_0, [x], #2
LDRSH c_0, [c], #2
MLA acc, x_0, c_0, acc
LDRSH x_1, [x], #2
LDRSH c_1, [c], #2
MLA acc, x_1, c_1, acc
ADD sum,sum,acc,ASR #6
MOV acc, #0
LDRSH x_0, [x], #2
LDRSH c_0, [c], #2
MLA acc, x_0, c_0, acc
LDRSH x_1, [x], #2
LDRSH c_1, [c], #2
MLA acc, x_1, c_1, acc
LDRSH x_0, [x], #2
LDRSH c_0, [c], #2
MLA acc, x_0, c_0, acc
LDRSH x_1, [x], #2
LDRSH c_1, [c], #2
MLA acc, x_1, c_1, acc
ADD sum,sum,acc,ASR #6
MOV acc, #0
LDRSH x_0, [x], #2
LDRSH c_0, [c], #2
MLA acc, x_0, c_0, acc
LDRSH x_1, [x], #2
LDRSH c_1, [c], #2
MLA acc, x_1, c_1, acc
LDRSH x_0, [x], #2
LDRSH c_0, [c], #2
MLA acc, x_0, c_0, acc
LDRSH x_1, [x], #2
LDRSH c_1, [c], #2
MLA acc, x_1, c_1, acc
ADD sum,sum,acc,ASR #6
MOV acc, #0
LDRSH x_0, [x], #2
LDRSH c_0, [c], #2
MLA acc, x_0, c_0, acc
LDRSH x_1, [x], #2
LDRSH c_1, [c], #2
MLA acc, x_1, c_1, acc
LDRSH x_0, [x], #2
LDRSH c_0, [c], #2
MLA acc, x_0, c_0, acc
LDRSH x_1, [x], #2
LDRSH c_1, [c], #2
MLA acc, x_1, c_1, acc
ADD sum,sum,acc,ASR #6
MOV r0, sum
POP {r4-r8, pc}
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -