commit 8b00f72b25f932c65f7b3f54ca5f94742d0d00be
parent 275a2ef9b9df16b5b5d7811fe0748bf0a3842743
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date: Fri, 25 Sep 2015 17:28:58 +0200
Remove arch/z80/type.c
This file was needed in order to have the array types, but this array
does not depend of the arch because it is parametrized with the definitions
of arch.h
Diffstat:
4 files changed, 222 insertions(+), 230 deletions(-)
diff --git a/cc1/Makefile b/cc1/Makefile
@@ -1,7 +1,7 @@
include ../config.mk
OBJS = types.o decl.o lex.o error.o symbol.o main.o expr.o \
- code.o stmt.o cpp.o fold.o arch/$(ARCH)/types.o
+ code.o stmt.o cpp.o fold.o
all: cc1
diff --git a/cc1/arch/z80/arch.h b/cc1/arch/z80/arch.h
@@ -1,7 +1,37 @@
-#define TINT long long
-#define TUINT unsigned long long
-#define TFLOAT double
+#define TINT long long
+#define TUINT unsigned long long
+#define TFLOAT double
+#define RANK_BOOL 0
+#define RANK_SCHAR 1
+#define RANK_UCHAR 2
+#define RANK_CHAR 3
+#define RANK_SHORT 4
+#define RANK_USHORT 5
+#define RANK_INT 6
+#define RANK_UINT 7
+#define RANK_LONG 8
+#define RANK_ULONG 9
+#define RANK_LLONG 10
+#define RANK_ULLONG 11
+#define RANK_FLOAT 12
+#define RANK_DOUBLE 13
+#define RANK_LDOUBLE 15
+
+#define L_SCHAR L_INT8
+#define L_UCHAR L_UINT8
+#define L_CHAR L_UINT8
+#define L_SHORT L_INT16
+#define L_USHORT L_UINT16
#define L_INT L_INT16
-#define L_ENUM L_INT
-\ No newline at end of file
+#define L_UINT L_UINT16
+#define L_LONG L_INT32
+#define L_ULONG L_UINT32
+#define L_LLONG L_INT64
+#define L_ULLONG L_UINT64
+#define L_BOOL 'B'
+#define L_FLOAT 'J'
+#define L_DOUBLE 'D'
+#define L_LDOUBLE 'H'
+#define L_ENUM L_INT
diff --git a/cc1/arch/z80/types.c b/cc1/arch/z80/types.c
@@ -1,223 +0,0 @@
-
-#include <stdio.h>
-
-#include "../../../inc/cc.h"
-#include "../../cc1.h"
-#include "arch.h"
-
-#define RANK_BOOL 0
-#define RANK_SCHAR 1
-#define RANK_UCHAR 2
-#define RANK_CHAR 3
-#define RANK_SHORT 4
-#define RANK_USHORT 5
-#define RANK_INT 6
-#define RANK_UINT 7
-#define RANK_LONG 8
-#define RANK_ULONG 9
-#define RANK_LLONG 10
-#define RANK_ULLONG 11
-#define RANK_FLOAT 12
-#define RANK_DOUBLE 13
-#define RANK_LDOUBLE 15
-
-#define L_SCHAR L_INT8
-#define L_UCHAR L_UINT8
-#define L_CHAR L_UINT8
-#define L_SHORT L_INT16
-#define L_USHORT L_UINT16
-#define L_UINT L_UINT16
-#define L_LONG L_INT32
-#define L_ULONG L_UINT32
-#define L_LLONG L_INT64
-#define L_ULLONG L_UINT64
-#define L_BOOL 'B'
-#define L_FLOAT 'J'
-#define L_DOUBLE 'D'
-#define L_LDOUBLE 'H'
-
-/*
- * Initializaion of type pointers were done with
- * a C99 initilizator '... = &(Type) {...', but
- * c compiler in Plan9 gives error with this
- * syntax, so I have switched it to this ugly form
- * I hope I will change it again in the future
- */
-static Type types[] = {
- { /* 0 = voidtype */
- .op = VOID,
- .letter = L_VOID,
- .printed = 1
- },
- { /* 1 = pvoidtype */
- .op = PTR,
- .letter = L_POINTER,
- .size = 2,
- .align = 2,
- .printed = 1
- },
- { /* 2 = booltype */
- .op = INT,
- .letter = L_BOOL,
- .defined = 1,
- .size = 1,
- .align = 1,
- .n.rank = RANK_BOOL,
- .printed = 1
- },
- { /* 3 = schartype */
- .op = INT,
- .letter = L_SCHAR,
- .defined = 1,
- .size = 1,
- .align = 1,
- .sign = 1,
- .n.rank = RANK_SCHAR,
- .printed = 1
- },
- { /* 4 = uchartype */
- .op = INT,
- .letter = L_UCHAR,
- .defined = 1,
- .size = 1,
- .align = 1,
- .n.rank = RANK_UCHAR,
- .printed = 1
- },
- { /* 5 = chartype */
- .op = INT,
- .letter = L_CHAR,
- .defined = 1,
- .size = 1,
- .align = 1,
- .sign = 1,
- .n.rank = RANK_CHAR,
- .printed = 1
- },
- { /* 6 = ushortype */
- .op = INT,
- .letter = L_USHORT,
- .defined = 1,
- .size = 2,
- .align = 1,
- .n.rank = RANK_USHORT,
- .printed = 1
- },
- { /* 7 = shortype */
- .op = INT,
- .letter = L_SHORT,
- .defined = 1,
- .size = 2,
- .align = 1,
- .sign = 1,
- .n.rank = RANK_SHORT,
- .printed = 1
- },
- { /* 8 = uinttype */
- .op = INT,
- .letter = L_UINT,
- .defined = 1,
- .size = 2,
- .align = 1,
- .n.rank = RANK_UINT,
- .printed = 1
- },
- { /* 9 = inttype */
- .op = INT,
- .letter = L_INT,
- .defined = 1,
- .size = 2,
- .align = 1,
- .sign = 1,
- .n.rank = RANK_INT,
- .printed = 1
- },
- { /* 10 = longtype */
- .op = INT,
- .letter = L_LONG,
- .defined = 1,
- .size = 4,
- .align = 1,
- .sign = 1,
- .n.rank = RANK_LONG,
- .printed = 1
- },
- { /* 11 = ulongtype */
- .op = INT,
- .letter = L_ULONG,
- .defined = 1,
- .size = 4,
- .align = 1,
- .n.rank = RANK_ULONG,
- .printed = 1
- },
- { /* 12 = ullongtype */
- .op = INT,
- .letter = L_ULLONG,
- .defined = 1,
- .size = 8,
- .align = 1,
- .n.rank = RANK_ULLONG,
- .printed = 1
- },
- { /* 13 = llongtype */
- .op = INT,
- .letter = L_LLONG,
- .defined = 1,
- .size = 8,
- .align = 1,
- .sign = 1,
- .n.rank = RANK_LLONG,
- .printed = 1
- },
- { /* 14 = floattype */
- .op = FLOAT,
- .letter = L_FLOAT,
- .defined = 1,
- .size = 4,
- .align = 1,
- .n.rank = RANK_FLOAT,
- .printed = 1
- },
- { /* 15 = doubletype */
- .op = FLOAT,
- .letter = L_DOUBLE,
- .defined = 1,
- .size = 8,
- .align = 1,
- .n.rank = RANK_DOUBLE,
- .printed = 1
- },
- { /* 16 = ldoubletype */
- .op = FLOAT,
- .letter = L_LDOUBLE,
- .defined = 1,
- .size = 16,
- .align = 1,
- .n.rank = RANK_LDOUBLE,
- .printed = 1
- },
- { /* 17 = sizettype */
- .op = INT,
- .letter = L_UINT,
- .defined = 1,
- .size = 2,
- .align = 1,
- .n.rank = RANK_UINT,
- .printed = 1
- }
-};
-
-Type *voidtype = &types[0], *pvoidtype = &types[1],
- *booltype = &types[2], *schartype = &types[3],
- *uchartype = &types[4], *chartype = &types[5],
- *ushortype = &types[6], *shortype = &types[7],
- *uinttype = &types[8], *inttype = &types[9],
- *longtype = &types[10], *ulongtype = &types[11],
- *ullongtype = &types[12], *llongtype = &types[13],
- *floattype = &types[14], *doubletype = &types[15],
- *ldoubletype = &types[16], *sizettype = &types[17];
-
-static Symbol dummy0 = {.u.i = 0, .type = &types[9]},
- dummy1 = {.u.i = 1, .type = &types[9]};
-Symbol *zero = &dummy0, *one = &dummy1;
diff --git a/cc1/types.c b/cc1/types.c
@@ -16,7 +16,7 @@
* TUINT and TFLOAT are smaller than any of the constants in this
* array. Ignore them if you know that the target types are correct
*/
-struct limits limits[][4] = {
+static struct limits limits[][4] = {
{
{ /* 0 = unsigned 1 byte */
.min.u = 0,
@@ -72,6 +72,192 @@ struct limits limits[][4] = {
}
};
+/*
+ * Initializaion of type pointers were done with
+ * a C99 initilizator '... = &(Type) {...', but
+ * c compiler in Plan9 gives error with this
+ * syntax, so I have switched it to this ugly form
+ * I hope I will change it again in the future
+ */
+static Type types[] = {
+ { /* 0 = voidtype */
+ .op = VOID,
+ .letter = L_VOID,
+ .printed = 1
+ },
+ { /* 1 = pvoidtype */
+ .op = PTR,
+ .letter = L_POINTER,
+ .size = 2,
+ .align = 2,
+ .printed = 1
+ },
+ { /* 2 = booltype */
+ .op = INT,
+ .letter = L_BOOL,
+ .defined = 1,
+ .size = 1,
+ .align = 1,
+ .n.rank = RANK_BOOL,
+ .printed = 1
+ },
+ { /* 3 = schartype */
+ .op = INT,
+ .letter = L_SCHAR,
+ .defined = 1,
+ .size = 1,
+ .align = 1,
+ .sign = 1,
+ .n.rank = RANK_SCHAR,
+ .printed = 1
+ },
+ { /* 4 = uchartype */
+ .op = INT,
+ .letter = L_UCHAR,
+ .defined = 1,
+ .size = 1,
+ .align = 1,
+ .n.rank = RANK_UCHAR,
+ .printed = 1
+ },
+ { /* 5 = chartype */
+ .op = INT,
+ .letter = L_CHAR,
+ .defined = 1,
+ .size = 1,
+ .align = 1,
+ .sign = 1,
+ .n.rank = RANK_CHAR,
+ .printed = 1
+ },
+ { /* 6 = ushortype */
+ .op = INT,
+ .letter = L_USHORT,
+ .defined = 1,
+ .size = 2,
+ .align = 1,
+ .n.rank = RANK_USHORT,
+ .printed = 1
+ },
+ { /* 7 = shortype */
+ .op = INT,
+ .letter = L_SHORT,
+ .defined = 1,
+ .size = 2,
+ .align = 1,
+ .sign = 1,
+ .n.rank = RANK_SHORT,
+ .printed = 1
+ },
+ { /* 8 = uinttype */
+ .op = INT,
+ .letter = L_UINT,
+ .defined = 1,
+ .size = 2,
+ .align = 1,
+ .n.rank = RANK_UINT,
+ .printed = 1
+ },
+ { /* 9 = inttype */
+ .op = INT,
+ .letter = L_INT,
+ .defined = 1,
+ .size = 2,
+ .align = 1,
+ .sign = 1,
+ .n.rank = RANK_INT,
+ .printed = 1
+ },
+ { /* 10 = longtype */
+ .op = INT,
+ .letter = L_LONG,
+ .defined = 1,
+ .size = 4,
+ .align = 1,
+ .sign = 1,
+ .n.rank = RANK_LONG,
+ .printed = 1
+ },
+ { /* 11 = ulongtype */
+ .op = INT,
+ .letter = L_ULONG,
+ .defined = 1,
+ .size = 4,
+ .align = 1,
+ .n.rank = RANK_ULONG,
+ .printed = 1
+ },
+ { /* 12 = ullongtype */
+ .op = INT,
+ .letter = L_ULLONG,
+ .defined = 1,
+ .size = 8,
+ .align = 1,
+ .n.rank = RANK_ULLONG,
+ .printed = 1
+ },
+ { /* 13 = llongtype */
+ .op = INT,
+ .letter = L_LLONG,
+ .defined = 1,
+ .size = 8,
+ .align = 1,
+ .sign = 1,
+ .n.rank = RANK_LLONG,
+ .printed = 1
+ },
+ { /* 14 = floattype */
+ .op = FLOAT,
+ .letter = L_FLOAT,
+ .defined = 1,
+ .size = 4,
+ .align = 1,
+ .n.rank = RANK_FLOAT,
+ .printed = 1
+ },
+ { /* 15 = doubletype */
+ .op = FLOAT,
+ .letter = L_DOUBLE,
+ .defined = 1,
+ .size = 8,
+ .align = 1,
+ .n.rank = RANK_DOUBLE,
+ .printed = 1
+ },
+ { /* 16 = ldoubletype */
+ .op = FLOAT,
+ .letter = L_LDOUBLE,
+ .defined = 1,
+ .size = 16,
+ .align = 1,
+ .n.rank = RANK_LDOUBLE,
+ .printed = 1
+ },
+ { /* 17 = sizettype */
+ .op = INT,
+ .letter = L_UINT,
+ .defined = 1,
+ .size = 2,
+ .align = 1,
+ .n.rank = RANK_UINT,
+ .printed = 1
+ }
+};
+
+Type *voidtype = &types[0], *pvoidtype = &types[1],
+ *booltype = &types[2], *schartype = &types[3],
+ *uchartype = &types[4], *chartype = &types[5],
+ *ushortype = &types[6], *shortype = &types[7],
+ *uinttype = &types[8], *inttype = &types[9],
+ *longtype = &types[10], *ulongtype = &types[11],
+ *ullongtype = &types[12], *llongtype = &types[13],
+ *floattype = &types[14], *doubletype = &types[15],
+ *ldoubletype = &types[16], *sizettype = &types[17];
+
+static Symbol dummy0 = {.u.i = 0, .type = &types[9]},
+ dummy1 = {.u.i = 1, .type = &types[9]};
+Symbol *zero = &dummy0, *one = &dummy1;
+
struct limits *
getlimits(Type *tp)
{