comparison dyncall/dyncall_call_arm32_arm_armhf.S @ 406:351bb41d3bb1

- removed %-prefixes for register names from arm assembly files (was wrong to begin with, gas accepted them but the clang integrated assembler does not)
author Tassilo Philipp
date Sun, 03 Oct 2021 10:34:56 +0200
parents f5577f6bf97a
children 7364f285cac8
comparison
equal deleted inserted replaced
405:e221473a8217 406:351bb41d3bb1
75 add r3, r3, #4 75 add r3, r3, #4
76 b armhf_pushArgs 76 b armhf_pushArgs
77 77
78 armhf_call: 78 armhf_call:
79 ldmia r1, {r0-r3} /* Load first 4 arguments for new call into r0-r3. */ 79 ldmia r1, {r0-r3} /* Load first 4 arguments for new call into r0-r3. */
80 /* 'blx %r4' workaround for ARMv4t: */ 80 /* 'blx r4' workaround for ARMv4t: */
81 mov r14, r15 /* Branch return address(r15) -> link register (r14) -- r15 always points to address of current + 2 instructions (= Epilog code). */ 81 mov r14, r15 /* Branch return address(r15) -> link register (r14) -- r15 always points to address of current + 2 instructions (= Epilog code). */
82 bx r4 /* Call (ARM/THUMB), available for ARMv4t. */ 82 bx r4 /* Call (ARM/THUMB), available for ARMv4t. */
83 83
84 /* Epilog. */ 84 /* Epilog. */
85 ldmdb r11, {r4-r5, r11, r13, r15} /* Restore permanent registers (ignore temporary (r12), restore stack ptr and program counter).@@@db not needed since we rewrite r13? */ 85 ldmdb r11, {r4-r5, r11, r13, r15} /* Restore permanent registers (ignore temporary (r12), restore stack ptr and program counter).@@@db not needed since we rewrite r13? */