shithub: scc

Download patch

ref: 37ffac184537c284e94c6384c630236f13db972b
parent: 4786cd4f6eca4565c5c0044871877682b378aa68
author: Roberto E. Vargas Caballero <k0ga@shike2.com>
date: Wed Mar 18 10:48:10 EDT 2015

Use unsigned types where it is possible

--- a/cc2/cc2.h
+++ b/cc2/cc2.h
@@ -44,7 +44,7 @@
 typedef struct node Node;
 
 typedef struct {
-	short size;
+	unsigned short size;
 	uint8_t align;
 	char letter;
 	uint8_t flags;
@@ -75,8 +75,8 @@
 };
 
 struct node {
-	char op;
-	char subop;
+	uint8_t op;
+	uint8_t subop;
 	Type type;
 	uint8_t complex;
 	uint8_t addable;
@@ -99,7 +99,7 @@
 };
 
 struct inst {
-	char op;
+	uint8_t op;
 	Addr from, to;
 	Inst *next, *prev;
 };
--- a/cc2/cgen.c
+++ b/cc2/cgen.c
@@ -8,9 +8,9 @@
 
 
 static Node *reguse[NREGS];
-static char upper[] = {[DE] = D, [HL] = H, [BC] = B,  [IY] = IYH};
-static char lower[] = {[DE] = E, [HL] = L, [BC] = C, [IY] = IYL};
-static char pair[] = {
+static uint8_t upper[] = {[DE] = D, [HL] = H, [BC] = B,  [IY] = IYH};
+static uint8_t lower[] = {[DE] = E, [HL] = L, [BC] = C, [IY] = IYL};
+static uint8_t pair[] = {
 	[A] = A,
 	[H] = HL, [L] = HL,
 	[B] = BC, [C] = BC,
@@ -90,12 +90,12 @@
 	[IX] = &reg_IX, [IY] = &reg_IY, [SP] = &reg_SP
 };
 
-static char
+static uint8_t
 allocreg(Node *np)
 {
-	static char reg8[] = {A, B, C, D, E, H, L, IYL, IY, 0};
-	static char reg16[] = {BC, DE, IY, 0};
-	char *bp, c;
+	static uint8_t reg8[] = {A, B, C, D, E, H, L, IYL, IY, 0};
+	static uint8_t reg16[] = {BC, DE, IY, 0};
+	uint8_t *bp, c;
 
 	switch (np->type.size) {
 	case 1:
--- a/cc2/code.c
+++ b/cc2/code.c
@@ -117,10 +117,9 @@
 }
 
 static void
-addr2txt(char op, Addr *a)
+addr2txt(uint8_t op, Addr *a)
 {
 	Symbol *sym;
-	char *fmt;
 
 	switch (a->kind) {
 	case REG:
@@ -157,7 +156,7 @@
 static void
 inst1(void)
 {
-	char op = pc->op;
+	uint8_t op = pc->op;
 
 	printf("\t%s\t", insttext[op]);
 	addr2txt(op, (pc->to.kind != NONE) ? &pc->to : &pc->from);
@@ -167,7 +166,7 @@
 static void
 inst2(void)
 {
-	char op = pc->op;
+	uint8_t op = pc->op;
 
 	printf("\t%s\t", insttext[op]);
 	addr2txt(op, &pc->to);