m68k: support ISA-A Coldfire CPUs

Fix compilation for m68k/coldfire CPUs like mcf5208.

Signed-off-by: Thorsten Glaser <tg@mirbsd.de>
Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
This commit is contained in:
Waldemar Brodkorb
2016-08-20 00:52:19 +02:00
parent 06d7c5190e
commit 52a11f6d91

View File

@@ -3,7 +3,7 @@
sysv.S - Copyright (c) 2012 Alan Hourihane sysv.S - Copyright (c) 2012 Alan Hourihane
Copyright (c) 1998, 2012 Andreas Schwab Copyright (c) 1998, 2012 Andreas Schwab
Copyright (c) 2008 Red Hat, Inc. Copyright (c) 2008 Red Hat, Inc.
Copyright (c) 2012 Thorsten Glaser Copyright (c) 2012, 2016 Thorsten Glaser
m68k Foreign Function Interface m68k Foreign Function Interface
@@ -72,6 +72,15 @@ CALLFUNC(ffi_call_SYSV):
pea 4(%sp) pea 4(%sp)
#if !defined __PIC__ #if !defined __PIC__
jsr CALLFUNC(ffi_prep_args) jsr CALLFUNC(ffi_prep_args)
#elif defined(__uClinux__) && defined(__ID_SHARED_LIBRARY__)
move.l _current_shared_library_a5_offset_(%a5),%a0
move.l CALLFUNC(ffi_prep_args@GOT)(%a0),%a0
jsr (%a0)
#elif defined(__mcoldfire__) && !defined(__mcfisab__) && !defined(__mcfisac__)
move.l #_GLOBAL_OFFSET_TABLE_@GOTPC,%a0
lea (-6,%pc,%a0),%a0
move.l CALLFUNC(ffi_prep_args@GOT)(%a0),%a0
jsr (%a0)
#else #else
bsr.l CALLFUNC(ffi_prep_args@PLTPC) bsr.l CALLFUNC(ffi_prep_args@PLTPC)
#endif #endif
@@ -215,6 +224,15 @@ CALLFUNC(ffi_closure_SYSV):
move.l %a0,-(%sp) move.l %a0,-(%sp)
#if !defined __PIC__ #if !defined __PIC__
jsr CALLFUNC(ffi_closure_SYSV_inner) jsr CALLFUNC(ffi_closure_SYSV_inner)
#elif defined(__uClinux__) && defined(__ID_SHARED_LIBRARY__)
move.l _current_shared_library_a5_offset_(%a5),%a0
move.l CALLFUNC(ffi_closure_SYSV_inner@GOT)(%a0),%a0
jsr (%a0)
#elif defined(__mcoldfire__) && !defined(__mcfisab__) && !defined(__mcfisac__)
move.l #_GLOBAL_OFFSET_TABLE_@GOTPC,%a0
lea (-6,%pc,%a0),%a0
move.l CALLFUNC(ffi_closure_SYSV_inner@GOT)(%a0),%a0
jsr (%a0)
#else #else
bsr.l CALLFUNC(ffi_closure_SYSV_inner@PLTPC) bsr.l CALLFUNC(ffi_closure_SYSV_inner@PLTPC)
#endif #endif
@@ -317,6 +335,15 @@ CALLFUNC(ffi_closure_struct_SYSV):
move.l %a0,-(%sp) move.l %a0,-(%sp)
#if !defined __PIC__ #if !defined __PIC__
jsr CALLFUNC(ffi_closure_SYSV_inner) jsr CALLFUNC(ffi_closure_SYSV_inner)
#elif defined(__uClinux__) && defined(__ID_SHARED_LIBRARY__)
move.l _current_shared_library_a5_offset_(%a5),%a0
move.l CALLFUNC(ffi_closure_SYSV_inner@GOT)(%a0),%a0
jsr (%a0)
#elif defined(__mcoldfire__) && !defined(__mcfisab__) && !defined(__mcfisac__)
move.l #_GLOBAL_OFFSET_TABLE_@GOTPC,%a0
lea (-6,%pc,%a0),%a0
move.l CALLFUNC(ffi_closure_SYSV_inner@GOT)(%a0),%a0
jsr (%a0)
#else #else
bsr.l CALLFUNC(ffi_closure_SYSV_inner@PLTPC) bsr.l CALLFUNC(ffi_closure_SYSV_inner@PLTPC)
#endif #endif