1
0
mirror of https://github.com/bebbo/amiga-gcc.git synced 2025-11-19 23:01:04 +00:00

refs #222: enhance clib/compiler-specific.h

This commit is contained in:
bebbo
2021-08-16 14:13:19 +02:00
parent ebed8dfa39
commit 0a84962a0f

View File

@ -0,0 +1,109 @@
--- old/NDK3.2/Include_H/clib/compiler-specific.h 2021-04-13 02:41:06.000000000 +0200
+++ new/NDK3.2/Include_H/clib/compiler-specific.h 2021-08-16 09:00:08.041987692 +0200
@@ -9,6 +9,7 @@
**
** Copyright (C) 2020 Hyperion Entertainment CVBA.
** Developed under license.
+** gcc-yfied in 2021 by Bebbo
*/
/* Some structure definitions include prototypes for function pointers.
@@ -50,56 +51,94 @@
#ifndef __REG__
#ifdef __SASC
#define __REG__(r, p) register __ ## r p
+#elif defined (__GNUC__) && defined (__regargs)
+#define __REG__(r, p) p asm(#r)
#else
#define __REG__(r, p) p
#endif
#endif /* __REG__ */
+#ifndef __REG
+#define __REG(a,b) __REG(a,b)
+#endif
+
/*
** Stack based calling conventions
*/
#ifndef __STDARGS__
-#ifdef __SASC
+#if defined (__SASC) || defined (__stdargs)
#define __STDARGS__ __stdargs
#else
#define __STDARGS__
#endif
#endif /* __STDARGS__ */
+#ifndef __STDARGS
+#define __STDARGS __STDARGS__
+#endif
+
/*
** Small data model using A4-relative addressing needs to establish the
** initial A4 register value.
*/
#ifndef __SAVE_DS__
-#ifdef __SASC
+#if defined (__SASC) || defined (__saveds)
#define __SAVE_DS__ __saveds
#else
#define __SAVE_DS__
#endif
#endif /* __SAVE_DS__ */
+#ifndef __SAVE_DS
+#define __SAVE_DS __SAVE_DS__
+#endif
+
/*
** Data or functions marked for absolute addressing rather than PC or
** register-relative addressing.
*/
#ifndef __FAR__
-#ifdef __SASC
+#if defined (__SASC) || defined (__far)
#define __FAR__ __far
#else
#define __FAR__
#endif
#endif /* __FAR__ */
+#ifndef __FAR
+#define __FAR __FAR__
+#endif
+
+/*
+** Data or functions marked for absolute addressing rather than PC or
+** register-relative addressing plus residing in chip ram
+*/
+#ifndef __CHIP__
+#if defined (__SASC) || defined (__chip)
+#define __CHIP__ __chip
+#else
+#define __CHIP__
+#endif
+#endif /* __CHIP__ */
+
+#ifndef __CHIP
+#define __CHIP __CHIP__
+#endif
+
/*
** Request that upon exit from a function the CPU condition codes should be
** updated based upon whether or not the value of register D0 is non-zero.
*/
#ifndef __INTERRUPT__
-#ifdef __SASC
+#if defined (__SASC) || defined (__interrupt)
#define __INTERRUPT__ __interrupt
#else
#define __INTERRUPT__
#endif
#endif /* __INTERRUPT__ */
+#ifndef __INTERRUPT
+#define __INTERRUPT __INTERRUPT__
+#endif
+
#endif /* COMPILER_SPECIFIC_H */