Mercurial > libavcodec.hg
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 |