summaryrefslogtreecommitdiff
blob: 3aaf67c6c90b94e4917ce7d4c942f48e84091ea7 (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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
iff -ur duke3d/source/buildengine/a.c duke3d-gcc4/source/buildengine/a.c
--- source/buildengine/a.c	2004-11-25 13:55:21.000000000 -0500
+++ source/buildengine/a.c	2005-06-18 18:14:24.000000000 -0400
@@ -186,7 +186,9 @@
     if (i3 == 0)
     {
 	    i1 += i4;
-	    ((unsigned long)i4) >>= mach3_al;
+			unsigned long temp = i4;
+	    temp >>= mach3_al;
+			i4 = temp;
 	    i4 = (i4&0xffffff00) | (source[i4]&0xff);
 	    *dest = ((unsigned char*)i2)[i4];
 	    return i1;
diff -ur duke3d/source/buildengine/pragmas.c duke3d-gcc4/source/buildengine/pragmas.c
--- source/buildengine/pragmas.c	2003-07-25 20:11:32.000000000 -0400
+++ source/buildengine/pragmas.c	2005-06-18 18:25:37.000000000 -0400
@@ -56,28 +56,39 @@
 
 void clearbufbyte(void *buffer, int size, long fill_value) {
   int lsize;
+	unsigned char *p=buffer;
+	unsigned short *s=buffer;
   switch(size){
   case 0: return;
-  case 1: *((unsigned char*)buffer)++ = fill_value; return;
-  case 2: *((unsigned short*)buffer)++ = fill_value; return;
-  case 3: { unsigned char *p=buffer; p[2]=p[1]=p[0] = fill_value;} return;
+  case 1: *p = fill_value; return;
+  case 2: *s = fill_value; return;
+  case 3: { p[2]=p[1]=p[0] = fill_value;} return;
   default:
 	if ((int)buffer&1) {
-		*((unsigned char*)buffer)++ = fill_value; size--;
+		*p = fill_value; ++p; size--;
+		buffer = p;
 	}
 	if ((int)buffer&2) {
-		*((unsigned short*)buffer)++ = fill_value; size-=2;
+		*s = fill_value; ++s; size-=2;
+		buffer = s;
 	}
 	lsize = size>>2;
+	unsigned int *up = buffer;
 	while(lsize) {
-		*((unsigned int*)buffer)++ = fill_value;
+		*up = fill_value;
+		++up;
 		lsize--;
 	}
+	buffer = up;
 	if (size&2) {
-		*((unsigned short*)buffer)++ = fill_value;
+		s = buffer;
+		*s = fill_value;
+		++s;
 	}
 	if (size&1) {
-		*((unsigned char*)buffer)++ = fill_value;
+		p = buffer;
+		*p = fill_value;
+		++p;
 	}
   }
 }
@@ -122,7 +133,7 @@
 	{
 		*((unsigned short *)source) = ((linum>>16)&0xffff);
 		linum += linum_inc;
-		((unsigned char*)source) = ((unsigned char*)source) + 2;
+		source = ((unsigned char*)source) + 2;
 		size--;
 		if (size == 0) return;
 	}

diff -u -r duke3d/source/buildengine/a.h duke3d.gcc4.1.1/source/buildengine/a.h
--- source/buildengine/a.h	2003-04-11 08:54:06.000000000 +0200
+++ source/buildengine/a.h	2006-06-22 12:14:40.366393568 +0200
@@ -116,56 +116,56 @@
 
   #if ((defined __GNUC__) && (!defined C_IDENTIFIERS_UNDERSCORED))
 
-    long asm_mmxoverlay(void) __attribute__ ((alias ("_asm_mmxoverlay")));
-    long asm_sethlinesizes(long,long,long) __attribute__ ((alias ("_asm_sethlinesizes")));
-    long asm_setpalookupaddress(char *) __attribute__ ((alias ("_asm_setpalookupaddress")));
-    long asm_setuphlineasm4(long,long) __attribute__ ((alias ("_asm_setuphlineasm4")));
-    long asm_hlineasm4(long,long,long,long,long,long) __attribute__ ((alias ("_asm_hlineasm4")));
-    long asm_setuprhlineasm4(long,long,long,long,long,long) __attribute__ ((alias ("_asm_setuprhlineasm4")));
-    long asm_rhlineasm4(long,long,long,long,long,long) __attribute__ ((alias ("_asm_rhlineasm4")));
-    long asm_setuprmhlineasm4(long,long,long,long,long,long) __attribute__ ((alias ("_asm_setuprmhlineasm4")));
-    long asm_rmhlineasm4(long,long,long,long,long,long) __attribute__ ((alias ("_asm_rmhlineasm4")));
-    long asm_setupqrhlineasm4(long,long,long,long,long,long) __attribute__ ((alias ("_asm_setupqrhlineasm4")));
-    long asm_qrhlineasm4(long,long,long,long,long,long) __attribute__ ((alias ("_asm_qrhlineasm4")));
-    long asm_setvlinebpl(long) __attribute__ ((alias ("_asm_setvlinebpl")));
-    long asm_fixtransluscence(long) __attribute__ ((alias ("_asm_fixtransluscence")));
-    long asm_prevlineasm1(long,long,long,long,long,long) __attribute__ ((alias ("_asm_prevlineasm1")));
-    long asm_vlineasm1(long,long,long,long,long,long) __attribute__ ((alias ("_asm_vlineasm1")));
-    long asm_setuptvlineasm(long) __attribute__ ((alias ("_asm_setuptvlineasm")));
-    long asm_tvlineasm1(long,long,long,long,long,long) __attribute__ ((alias ("_asm_tvlineasm1")));
-    long asm_setuptvlineasm2(long,long,long) __attribute__ ((alias ("_asm_setuptvlineasm2")));
-    long asm_tvlineasm2(long,long,long,long,long,long) __attribute__ ((alias ("_asm_tvlineasm2")));
-    long asm_mvlineasm1(long,long,long,long,long,long) __attribute__ ((alias ("_asm_mvlineasm1")));
-    long asm_setupvlineasm(long) __attribute__ ((alias ("_asm_setupvlineasm")));
-    long asm_vlineasm4(long,long) __attribute__ ((alias ("_asm_vlineasm4")));
-    long asm_setupmvlineasm(long) __attribute__ ((alias ("_asm_setupmvlineasm")));
-    long asm_mvlineasm4(long,long) __attribute__ ((alias ("_asm_mvlineasm4")));
-    void asm_setupspritevline(long,long,long,long,long,long) __attribute__ ((alias ("_asm_setupspritevline")));
-    void asm_spritevline(long,long,long,long,long,long) __attribute__ ((alias ("_asm_spritevline")));
-    void asm_msetupspritevline(long,long,long,long,long,long) __attribute__ ((alias ("_asm_msetupspritevline")));
-    void asm_mspritevline(long,long,long,long,long,long) __attribute__ ((alias ("_asm_mspritevline")));
-    void asm_tsetupspritevline(long,long,long,long,long,long) __attribute__ ((alias ("_asm_tsetupspritevline")));
-    void asm_tspritevline(long,long,long,long,long,long) __attribute__ ((alias ("_asm_tspritevline")));
-    long asm_mhline(long,long,long,long,long,long) __attribute__ ((alias ("_asm_mhline")));
-    long asm_mhlineskipmodify(long,long,long,long,long,long) __attribute__ ((alias ("_asm_mhlineskipmodify")));
-    long asm_msethlineshift(long,long) __attribute__ ((alias ("_asm_msethlineshift")));
-    long asm_thline(long,long,long,long,long,long) __attribute__ ((alias ("_asm_thline")));
-    long asm_thlineskipmodify(long,long,long,long,long,long) __attribute__ ((alias ("_asm_thlineskipmodify")));
-    long asm_tsethlineshift(long,long) __attribute__ ((alias ("_asm_tsethlineshift")));
-    long asm_setupslopevlin(long,long,long) __attribute__ ((alias ("_asm_setupslopevlin")));
-    long asm_slopevlin(long,long,long,long,long,long) __attribute__ ((alias ("_asm_slopevlin")));
-    long asm_settransnormal(void) __attribute__ ((alias ("_asm_settransnormal")));
-    long asm_settransreverse(void) __attribute__ ((alias ("_asm_settransreverse")));
-    long asm_setupdrawslab(long,long) __attribute__ ((alias ("_asm_setupdrawslab")));
-    long asm_drawslab(long,long,long,long,long,long) __attribute__ ((alias ("_asm_drawslab")));
-    long asm_stretchhline(long,long,long,long,long,long) __attribute__ ((alias ("_asm_stretchhline")));
-    long asm_isvmwarerunning(void) __attribute__ ((alias ("_asm_isvmwarerunning")));
+    long asm_mmxoverlay(void) asm ("_asm_mmxoverlay");
+    long asm_sethlinesizes(long,long,long) asm ("_asm_sethlinesizes");
+    long asm_setpalookupaddress(char *) asm ("_asm_setpalookupaddress");
+    long asm_setuphlineasm4(long,long) asm ("_asm_setuphlineasm4");
+    long asm_hlineasm4(long,long,long,long,long,long) asm ("_asm_hlineasm4");
+    long asm_setuprhlineasm4(long,long,long,long,long,long) asm ("_asm_setuprhlineasm4");
+    long asm_rhlineasm4(long,long,long,long,long,long) asm ("_asm_rhlineasm4");
+    long asm_setuprmhlineasm4(long,long,long,long,long,long) asm ("_asm_setuprmhlineasm4");
+    long asm_rmhlineasm4(long,long,long,long,long,long) asm ("_asm_rmhlineasm4");
+    long asm_setupqrhlineasm4(long,long,long,long,long,long) asm ("_asm_setupqrhlineasm4");
+    long asm_qrhlineasm4(long,long,long,long,long,long) asm ("_asm_qrhlineasm4");
+    long asm_setvlinebpl(long) asm ("_asm_setvlinebpl");
+    long asm_fixtransluscence(long) asm ("_asm_fixtransluscence");
+    long asm_prevlineasm1(long,long,long,long,long,long) asm ("_asm_prevlineasm1");
+    long asm_vlineasm1(long,long,long,long,long,long) asm ("_asm_vlineasm1");
+    long asm_setuptvlineasm(long) asm ("_asm_setuptvlineasm");
+    long asm_tvlineasm1(long,long,long,long,long,long) asm ("_asm_tvlineasm1");
+    long asm_setuptvlineasm2(long,long,long) asm ("_asm_setuptvlineasm2");
+    long asm_tvlineasm2(long,long,long,long,long,long) asm ("_asm_tvlineasm2");
+    long asm_mvlineasm1(long,long,long,long,long,long) asm ("_asm_mvlineasm1");
+    long asm_setupvlineasm(long) asm ("_asm_setupvlineasm");
+    long asm_vlineasm4(long,long) asm ("_asm_vlineasm4");
+    long asm_setupmvlineasm(long) asm ("_asm_setupmvlineasm");
+    long asm_mvlineasm4(long,long) asm ("_asm_mvlineasm4");
+    void asm_setupspritevline(long,long,long,long,long,long) asm ("_asm_setupspritevline");
+    void asm_spritevline(long,long,long,long,long,long) asm ("_asm_spritevline");
+    void asm_msetupspritevline(long,long,long,long,long,long) asm ("_asm_msetupspritevline");
+    void asm_mspritevline(long,long,long,long,long,long) asm ("_asm_mspritevline");
+    void asm_tsetupspritevline(long,long,long,long,long,long) asm ("_asm_tsetupspritevline");
+    void asm_tspritevline(long,long,long,long,long,long) asm ("_asm_tspritevline");
+    long asm_mhline(long,long,long,long,long,long) asm ("_asm_mhline");
+    long asm_mhlineskipmodify(long,long,long,long,long,long) asm("_asm_mhlineskipmodify");
+    long asm_msethlineshift(long,long) asm("_asm_msethlineshift");
+    long asm_thline(long,long,long,long,long,long) asm("_asm_thline");
+    long asm_thlineskipmodify(long,long,long,long,long,long) asm("_asm_thlineskipmodify");
+    long asm_tsethlineshift(long,long) asm("_asm_tsethlineshift");
+    long asm_setupslopevlin(long,long,long) asm("_asm_setupslopevlin");
+    long asm_slopevlin(long,long,long,long,long,long) asm("_asm_slopevlin");
+    long asm_settransnormal(void) asm("_asm_settransnormal");
+    long asm_settransreverse(void) asm("_asm_settransreverse");
+    long asm_setupdrawslab(long,long) asm("_asm_setupdrawslab");
+    long asm_drawslab(long,long,long,long,long,long) asm("_asm_drawslab");
+    long asm_stretchhline(long,long,long,long,long,long) asm("_asm_stretchhline");
+    long asm_isvmwarerunning(void) asm("_asm_isvmwarerunning");
 
     /*
 	 * !!! I need a reference to this, for mprotect(), but the actual function
      * !!!  is never called in BUILD...just from other ASM routines. --ryan.
 	 */
-    long asm_prohlineasm4(void) __attribute__ ((alias ("_asm_prohlineasm4")));
+    long asm_prohlineasm4(void) asm("_asm_prohlineasm4");
 
   #endif /* ELF/GCC */
 #endif /* defined USE_I386_ASM */