Mercurial > pub > dyncall > dyncall
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? */ |