summaryrefslogtreecommitdiff
path: root/nuttx/include/nuttx/compiler.h
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2008-03-09 19:59:46 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2008-03-09 19:59:46 +0000
commitf33ae4e1e9a6def8e70b1a888061817dc17fdaf1 (patch)
treede0a7c6e876193c39f0dec7adaeb10c2da6fbef5 /nuttx/include/nuttx/compiler.h
parent961958ec0596a99fae3e89c33ef5244e9ffa3075 (diff)
downloadnuttx-f33ae4e1e9a6def8e70b1a888061817dc17fdaf1.tar.gz
nuttx-f33ae4e1e9a6def8e70b1a888061817dc17fdaf1.tar.bz2
nuttx-f33ae4e1e9a6def8e70b1a888061817dc17fdaf1.zip
Adding ez80 support
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@730 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/include/nuttx/compiler.h')
-rw-r--r--nuttx/include/nuttx/compiler.h39
1 files changed, 27 insertions, 12 deletions
diff --git a/nuttx/include/nuttx/compiler.h b/nuttx/include/nuttx/compiler.h
index e8d14f7fd..0960fe3a5 100644
--- a/nuttx/include/nuttx/compiler.h
+++ b/nuttx/include/nuttx/compiler.h
@@ -230,7 +230,7 @@
/* At present, only the Zilog ZNeo compiler is recognized */
-# if !defined(__ZNEO__) && !defined(__EZ8__)
+# if !defined(__ZNEO__) && !defined(__EZ8__) && !defined(__EZ80__)
# warning "Unrecognized Zilog compiler"
# endif
@@ -272,24 +272,38 @@
* Z8Encore!: Far is 16-bits; near is 8-bits of address.
* The supported model is (1) all code on ROM, and (2) all data
* and stacks in internal (far) RAM.
+ * Z8Acclaim: In Z80 mode, all pointers are 16-bits. In ADL mode, all pointers
+ * and 24 bits.
*/
-# ifdef __ZNEO__
+# if defined(__ZNEO__)
# define FAR _Far
# define NEAR _Near
# define DSEG _Far
# define CODE _Erom
-# undef CONFIG_SMALL_MEMORY /* Select the large, 32-bit addressing model */
-# undef CONFIG_LONG_IS_NOT_INT /* Long and int are the same size */
-# undef CONFIG_PTR_IS_NOT_INT /* FAR pointers and int are the same size */
-# else
+# undef CONFIG_SMALL_MEMORY /* Select the large, 32-bit addressing model */
+# undef CONFIG_LONG_IS_NOT_INT /* Long and int are the same size */
+# undef CONFIG_PTR_IS_NOT_INT /* FAR pointers and int are the same size */
+# elif defined(__EZ8__)
# define FAR far
# define NEAR near
# define DSEG far
# define CODE rom
-# define CONFIG_SMALL_MEMORY 1 /* Select small, 16-bit address model */
-# define CONFIG_LONG_IS_NOT_INT 1 /* Long and int are not the same size */
-# undef CONFIG_PTR_IS_NOT_INT /* FAR pointers and int are the same size */
+# define CONFIG_SMALL_MEMORY 1 /* Select small, 16-bit address model */
+# define CONFIG_LONG_IS_NOT_INT 1 /* Long and int are not the same size */
+# undef CONFIG_PTR_IS_NOT_INT /* FAR pointers and int are the same size */
+# elif defined(__EZ80__)
+# define FAR
+# define NEAR
+# define DSEG
+# define CODE
+# undef CONFIG_SMALL_MEMORY /* Select the large, 32-bit addressing model */
+# define CONFIG_LONG_IS_NOT_INT 1 /* Long and int are not the same size */
+# ifdef CONFIG_EZ80_Z80MODE
+# define CONFIG_PTR_IS_NOT_INT 1 /* Pointers and int are not the same size */
+# else
+# undef CONFIG_PTR_IS_NOT_INT /* Pointers and int are the same size */
+# endif
# endif
/* The Zilog compiler does not support inline functions */
@@ -297,9 +311,10 @@
# undef CONFIG_HAVE_INLINE
# define inline
-/* The Zilog compiler supports both types double and long long,
- * but the size is 32-bits (same as long and single precision)
- * so it is safer to say that they are not supported.
+/* Older Zilog compilers support both types double and long long, but the size
+ * is 32-bits (same as long and single precision) so it is safer to say that
+ * they are not supported. Later versions are more ANSII compliant and
+ * simply do not support long long or double.
*/
# undef CONFIG_HAVE_DOUBLE