comparison arm/simple_idct_arm.S @ 10350:989ea69f6a4e libavcodec

ARM: use plain labels for pc-relative addressing
author mru
date Fri, 02 Oct 2009 23:11:03 +0000
parents 04423b2f6e0b
children 08573f5f587d
comparison
equal deleted inserted replaced
10349:be725249ea67 10350:989ea69f6a4e
64 @@ R12 is another scratch register, so it should not be saved too 64 @@ R12 is another scratch register, so it should not be saved too
65 @@ save all registers 65 @@ save all registers
66 stmfd sp!, {r4-r11, r14} @ R14 is also called LR 66 stmfd sp!, {r4-r11, r14} @ R14 is also called LR
67 @@ at this point, R0=block, other registers are free. 67 @@ at this point, R0=block, other registers are free.
68 add r14, r0, #112 @ R14=&block[8*7], better start from the last row, and decrease the value until row=0, i.e. R12=block. 68 add r14, r0, #112 @ R14=&block[8*7], better start from the last row, and decrease the value until row=0, i.e. R12=block.
69 add r12, pc, #(__constant_ptr__-.-8) @ R12=__constant_ptr__, the vector containing the constants, probably not necessary to reserve a register for it 69 adr r12, __constant_ptr__ @ R12=__constant_ptr__, the vector containing the constants, probably not necessary to reserve a register for it
70 @@ add 2 temporary variables in the stack: R0 and R14 70 @@ add 2 temporary variables in the stack: R0 and R14
71 sub sp, sp, #8 @ allow 2 local variables 71 sub sp, sp, #8 @ allow 2 local variables
72 str r0, [sp, #0] @ save block in sp[0] 72 str r0, [sp, #0] @ save block in sp[0]
73 @@ stack status 73 @@ stack status
74 @@ sp+4 free 74 @@ sp+4 free