summaryrefslogtreecommitdiff
blob: 25bf382eee56b6fd3a9376f2fc261219284740dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
Subject: [PATCH] fix declarations with type mismatches

Type mismatches between declarations prevent the compile from using LTO

Bug: https://bugs.gentoo.org/854534
Upstream: https://sourceforge.net/p/softgun/patches/5/

#  Pascal Jäger <pascal.jaeger@leimstift.de> (2023-09-21)

--- a/m16c/idecode_m16c.c
+++ b/m16c/idecode_m16c.c
@@ -9,7 +9,7 @@
 #include "sglib.h"
 
 M16C_InstructionProc **iProcTab;
-M16C_Instruction     **iTab;
+M16C_Instruction     **iTabM16C;
 
 static M16C_Instruction instrlist[] = {
 {0xfef0,0x76f0,"abs.size_dst",2		,m16c_abs_size_dst},
@@ -308,7 +308,7 @@ M16C_IDecoderNew()
 	int i,j;
 	int onecount1,onecount2;
 	iProcTab=(M16C_InstructionProc**)sg_calloc(0x10000*sizeof(M16C_InstructionProc*));
-	iTab=sg_calloc(0x10000*sizeof(M16C_Instruction*));
+	iTabM16C=sg_calloc(0x10000*sizeof(M16C_Instruction*));
 	fprintf(stderr,"Allocated M16C Instruction decoder table\n");
 	for(j=0;instrlist[j].proc;j++) {
 		M16C_Instruction *instr = &instrlist[j];
@@ -327,8 +327,8 @@ M16C_IDecoderNew()
 			}
 #endif
 			if((i & instr->mask) == instr->icode) {
-				if(iTab[i]) {
-					M16C_Instruction *instr2 = iTab[i];
+				if(iTabM16C[i]) {
+					M16C_Instruction *instr2 = iTabM16C[i];
 					specmask1 = instr->mask;
 					specmask2 = instr2->mask;
 					onecount1 = SGLib_OnecountU32(instr->mask);
@@ -336,18 +336,18 @@ M16C_IDecoderNew()
 					fprintf(stderr,"Collission %s, %s\n",instr->name,instr2->name);
 					#if 0
 					if(instr->len > instr2->len) {
-						iTab[i] = instr;
+						iTabM16C[i] = instr;
 						iProcTab[i] = instr->proc;
 					} else if(instr2->len > instr->len) {
-						iTab[i] = instr2;
+						iTabM16C[i] = instr2;
 						iProcTab[i] = instr2->proc;
 					} else 
 					#endif
 					if(onecount1 > onecount2) {
-						iTab[i] = instr;
+						iTabM16C[i] = instr;
 						iProcTab[i] = instr->proc;
 					} else if(onecount2 > onecount1) {
-						iTab[i] = instr2;
+						iTabM16C[i] = instr2;
 						iProcTab[i] = instr2->proc;
 					} else {
 						fprintf(stderr,"Can not decide %s, %s\n",instr->name,instr2->name);
@@ -360,10 +360,10 @@ M16C_IDecoderNew()
 						specmask2 |= 0xff00;
 					}
 					if((specmask2 & specmask1) == specmask1) {
-						iTab[i] = instr2;
+						iTabM16C[i] = instr2;
 						iProcTab[i] = instr2->proc;
 					} else if((specmask2 & specmask1) == specmask2) {
-						iTab[i] = instr;
+						iTabM16C[i] = instr;
 						iProcTab[i] = instr->proc;
 					} else {
 						fprintf(stdout,"%04x: no instruction is more specific %s %s %04x %04x %d %d\n",i,instr->name,instr2->name,instr->icode,instr2->icode,instr->len,instr2->len);
@@ -371,13 +371,13 @@ M16C_IDecoderNew()
 					}
 					#endif
 				} else {
-					iTab[i] = instr;
+					iTabM16C[i] = instr;
 					iProcTab[i] = instr->proc;
 				}
 			}
 		}
-		if(iTab[i] == NULL) {
-			iTab[i] = &undefined_instr; 
+		if(iTabM16C[i] == NULL) {
+			iTabM16C[i] = &undefined_instr;
 			iProcTab[i] = (&undefined_instr)->proc;
 		}
 	}
--- a/m16c/idecode_m16c.h
+++ b/m16c/idecode_m16c.h
@@ -11,14 +11,14 @@ typedef struct M16C_Instruction {
 } M16C_Instruction;
 
 extern M16C_InstructionProc **iProcTab;
-extern M16C_Instruction     **iTab;
+extern M16C_Instruction     **iTabM16C;
 
 void M16C_IDecoderNew(void);
 
 static inline M16C_Instruction *
 M16C_InstructionFind(uint16_t icode) 
 {
-        return iTab[icode];
+        return iTabM16C[icode];
 }
 static inline M16C_InstructionProc *
 M16C_InstructionProcFind(uint16_t icode) 
--- a/m16c/instructions_m16c.h
+++ b/m16c/instructions_m16c.h
@@ -160,7 +160,7 @@ void m16c_smovb_size(void);
 void m16c_smovf_size(void);
 void m16c_sstr_size(void);
 void m16c_stc_srcdst(void);
-void m16c_stc_pcdst(void);
+void m16c_stc_pcdst(uint16_t icode);
 void m16c_stctx_abs16abs20(void);
 void m16c_ste_size_srcabs20(void);
 void m16c_ste_size_srcdsp20(void);
--- a/ppc/mmu_ppc.c
+++ b/ppc/mmu_ppc.c
@@ -587,7 +587,7 @@ PPCMMU_Read8(uint32_t va) {
 }
 
 void 
-PPCMMU_Write64(uint32_t value,uint32_t va) {
+PPCMMU_Write64(uint64_t value,uint32_t va) {
 	uint32_t pa=translate_data(va);	
 	Bus_Write64(value,pa);
 }
--- a/printer/decompress.c
+++ b/printer/decompress.c
@@ -55,7 +55,7 @@ enum
     eeCachedColor = 0x60
 };
 
-inline uint32_t get3pixel (uint8_t* src)
+static inline uint32_t get3pixel (uint8_t* src)
 {
     return (src[0] << 16) | (src[1] << 8) | (src[2]);
 } 
-- 
2.41.0