From 0ae2e2df9484905555793ceb43ab553c06ea3589 Mon Sep 17 00:00:00 2001 From: Arun Thomas Date: Tue, 7 Aug 2012 17:01:25 +0200 Subject: [PATCH] libc: ARM generateasm --- lib/generateasm.mk | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/lib/generateasm.mk b/lib/generateasm.mk index 0fddf0bda..0b2206364 100644 --- a/lib/generateasm.mk +++ b/lib/generateasm.mk @@ -1,3 +1,15 @@ +ORIGFUNC= ${.PREFIX:S/^compat//} +RENAMEDFUNC=${.PREFIX:S/^compat__//:C/([0-9]{2})$//} +.if (${MACHINE_ARCH} == "i386") +FUNCTYPE= @function +PICJMP= jmpl *PIC_PLT(${ORIGFUNC}) +JMP= jmp ${ORIGFUNC} +.elif (${MACHINE_ARCH} == "arm") +FUNCTYPE= %%function +PICJMP= bl PIC_SYM(${ORIGFUNC}, PLT) +JMP= b ${ORIGFUNC} +.endif + ${ASM}: ${_MKTARGET_CREATE} printf '/* MINIX3 */ \n\ @@ -7,14 +19,14 @@ ${ASM}: * DO NOT EDIT: this file is automatically generated. \n\ */ \n\ #include \n\ -.global ${.PREFIX:S/^compat__//:C/([0-9]{2})$//}; \n\ -.global ${.PREFIX:S/^compat//}; \n\ -.type ${.PREFIX:S/^compat__//:C/([0-9]{2})$//},@function \n\ -${.PREFIX:S/^compat__//:C/([0-9]{2})$//}: \n\ +.global ${RENAMEDFUNC}; \n\ +.global ${ORIGFUNC}; \n\ +.type ${RENAMEDFUNC},${FUNCTYPE} \n\ +${RENAMEDFUNC}: \n\ #ifdef PIC \n\ -jmpl *PIC_PLT(${.PREFIX:S/^compat//}) \n\ +${PICJMP} \n\ #else \n\ -jmp ${.PREFIX:S/^compat//} \n\ +${JMP} \n\ #endif \n\ \n ' >${.TARGET}