diff dyncallback/dyncall_callback_arm32_arm_gas.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
line wrap: on
line diff
--- a/dyncallback/dyncall_callback_arm32_arm_gas.S	Wed Apr 07 18:51:38 2021 +0200
+++ b/dyncallback/dyncall_callback_arm32_arm_gas.S	Sun Oct 03 10:34:56 2021 +0200
@@ -6,7 +6,7 @@
  Description: Callback Thunk - Implementation for ARM32 (ARM mode)
  License:
 
-   Copyright (c) 2007-2018 Daniel Adler <dadler@uni-goettingen.de>,
+   Copyright (c) 2007-2021 Daniel Adler <dadler@uni-goettingen.de>,
                            Tassilo Philipp <tphilipp@potion-studios.com>
 
    Permission to use, copy, modify, and distribute this software for any
@@ -47,37 +47,37 @@
 dcCallbackThunkEntry:
 
 	/* Prolog. This function never needs to spill inside its prolog, so just store the permanent registers. */
-	stmdb	%r13, {%r4-%r11, %r13, %r14}	/* Permanent registers and stack pointer, etc... -> save area on stack (except counter). */
-	mov		%r11, %r13						/* Set frame pointer. */
-	sub		%r13, %r13, #40					/* Adjust stack pointer. */
+	stmdb	r13, {r4-r11, r13, r14}	/* Permanent registers and stack pointer, etc... -> save area on stack (except counter). */
+	mov		r11, r13				/* Set frame pointer. */
+	sub		r13, r13, #40			/* Adjust stack pointer. */
 
 	/* Grab arguments. */
-	mov		%r4, #0
+	mov		r4, #0
 #if defined(DC__ABI_ARM_HF)
-	stmdb	%r13!, {%r4}					/* Init freg_count and dreg_count to 0 */
-	stmdb	%r13!, {%r4}
-	fstmdbd	%r13!, {d0-d7}					/* Store all fp-registers in DCArgs' f[16] */
+	stmdb	r13!, {r4}					/* Init freg_count and dreg_count to 0 */
+	stmdb	r13!, {r4}
+	fstmdbd	r13!, {d0-d7}				/* Store all fp-registers in DCArgs' f[16] */
 #endif
-	stmdb	%r13!, {%r0-%r4, %r11}			/* Spill first 4 args to DCArgs, along with reg_count (init to 0) and (stack) pointer to remaining args. */
+	stmdb	r13!, {r0-r4, r11}			/* Spill first 4 args to DCArgs, along with reg_count (init to 0) and (stack) pointer to remaining args. */
 
 	/* Prepare callback handler call. */
-	mov		%r0, %r12						/* Parameter 0 (r0) = DCCallback pointer (r12, pointer to thunk). */
-	mov		%r1, %r13						/* Parameter 1 (r1) = DCArgs pointer (r13, stack pointer). */
-	sub		%r13, %r13, #DCValue_size		/* Make room for return value. */
-	mov		%r2, %r13						/* Parameter 2 (r2) = results pointer. */
-	ldr		%r3, [%r12, #CTX_userdata]		/* Parameter 3 (r3) = userdata pointer. */
+	mov		r0, r12						/* Parameter 0 (r0) = DCCallback pointer (r12, pointer to thunk). */
+	mov		r1, r13						/* Parameter 1 (r1) = DCArgs pointer (r13, stack pointer). */
+	sub		r13, r13, #DCValue_size		/* Make room for return value. */
+	mov		r2, r13						/* Parameter 2 (r2) = results pointer. */
+	ldr		r3, [r12, #CTX_userdata]		/* Parameter 3 (r3) = userdata pointer. */
 
 	/* Call. */
-	ldr		%r4, [%r12, #CTX_handler]		/* Load callback handler pointer into r4. */
-	mov		%r14, %r15						/* Branch return address(r15) -> link register (r14) -- r15 always points to address of current + 2 instructions (= Epilog code). */
-	bx		%r4								/* Call. */
+	ldr		r4, [r12, #CTX_handler]		/* Load callback handler pointer into r4. */
+	mov		r14, r15					/* Branch return address(r15) -> link register (r14) -- r15 always points to address of current + 2 instructions (= Epilog code). */
+	bx		r4							/* Call. */
 
 	/* Return value. */
-	ldmia	%r13, {%r0, %r1}				/* Load return value in r0 and r1. */
+	ldmia	r13, {r0, r1}				/* Load return value in r0 and r1. */
 #if defined(DC__ABI_ARM_HF)
-	fldmiad	%r13, {%d0}						/* Same for floating point return value (if any). */
+	fldmiad	r13, {d0}					/* Same for floating point return value (if any). */
 #endif
 
 	/* Epilog. */
-	ldmdb	%r11, {%r4-%r11, %r13, %r15}	/* Restore permanent registers (restore stack ptr and program counter).@@@db not needed since we rewrite r13? */
+	ldmdb	r11, {r4-r11, r13, r15}	/* Restore permanent registers (restore stack ptr and program counter).@@@db not needed since we rewrite r13? */