summaryrefslogtreecommitdiffstats
path: root/games/darkplaces/gcc11.patch
blob: ec653f8bc859e08cd20a2a9cebcc02cb77e77eb6 (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
--- a/dpsoftrast.c	2013-02-07 11:40:40.000000000 +0000
+++ b/dpsoftrast.c	2021-04-30 04:45:31.276607019 +0000
@@ -21,6 +21,7 @@
 	#if defined(__APPLE__)
 		#include <libkern/OSAtomic.h>
 		#define ALIGN(var) var __attribute__((__aligned__(16)))
+		#define ALIGN_STRUCT(def) struct __attribute__((__aligned__(16))) def
 		#define ATOMIC(var) var __attribute__((__aligned__(4)))
 		#define MEMORY_BARRIER (_mm_sfence())
 		#define ATOMIC_COUNTER volatile int32_t 
@@ -29,6 +30,7 @@
 		#define ATOMIC_ADD(counter, val) ((void)OSAtomicAdd32Barrier((val), &(counter)))
 	#elif defined(__GNUC__) && defined(WIN32)
 		#define ALIGN(var) var __attribute__((__aligned__(16)))
+		#define ALIGN_STRUCT(def) struct __attribute__((__aligned__(16))) def
 		#define ATOMIC(var) var __attribute__((__aligned__(4)))
 		#define MEMORY_BARRIER (_mm_sfence())
 		//(__sync_synchronize())
@@ -43,6 +45,7 @@
 		#define ATOMIC_ADD(counter, val) ((void)InterlockedExchangeAdd((LONG *) &(counter), (val)))
 	#elif defined(__GNUC__)
 		#define ALIGN(var) var __attribute__((__aligned__(16)))
+		#define ALIGN_STRUCT(def) struct __attribute__((__aligned__(16))) def
 		#define ATOMIC(var) var __attribute__((__aligned__(4)))
 		#define MEMORY_BARRIER (_mm_sfence())
 		//(__sync_synchronize())
@@ -52,6 +55,7 @@
 		#define ATOMIC_ADD(counter, val) ((void)__sync_fetch_and_add(&(counter), (val)))
 	#elif defined(_MSC_VER)
 		#define ALIGN(var) __declspec(align(16)) var
+		#define ALIGN_STRUCT(def) ALIGN(struct def)
 		#define ATOMIC(var) __declspec(align(4)) var
 		#define MEMORY_BARRIER (_mm_sfence())
 		//(MemoryBarrier())
@@ -65,6 +69,9 @@
 #ifndef ALIGN
 #define ALIGN(var) var
 #endif
+#ifndef ALIGN_STRUCT
+#define ALIGN_STRUCT(def) def
+#endif
 #ifndef ATOMIC
 #define ATOMIC(var) var
 #endif
@@ -163,7 +170,7 @@
 #define DPSOFTRAST_DRAW_MAXCOMMANDPOOL 2097152
 #define DPSOFTRAST_DRAW_MAXCOMMANDSIZE 16384
 
-typedef ALIGN(struct DPSOFTRAST_State_Command_Pool_s
+typedef ALIGN_STRUCT(DPSOFTRAST_State_Command_Pool_s
 {
 	int freecommand;
 	int usedcommands;
@@ -171,7 +178,7 @@
 }
 DPSOFTRAST_State_Command_Pool);
 
-typedef ALIGN(struct DPSOFTRAST_State_Triangle_s
+typedef ALIGN_STRUCT(DPSOFTRAST_State_Triangle_s
 {
 	unsigned char mip[DPSOFTRAST_MAXTEXTUREUNITS]; // texcoord to screen space density values (for picking mipmap of textures)
 	float w[3];
@@ -198,7 +205,7 @@
 					
 #define DPSOFTRAST_DRAW_MAXSUBSPAN 16
 
-typedef ALIGN(struct DPSOFTRAST_State_Span_s
+typedef ALIGN_STRUCT(DPSOFTRAST_State_Span_s
 {
 	int triangle; // triangle this span was generated by
 	int x; // framebuffer x coord
@@ -236,7 +243,7 @@
 }
 DPSOFTRAST_BLENDMODE;
 
-typedef ALIGN(struct DPSOFTRAST_State_Thread_s
+typedef ALIGN_STRUCT(DPSOFTRAST_State_Thread_s
 {
 	void *thread;
 	int index;
@@ -302,7 +309,7 @@
 }
 DPSOFTRAST_State_Thread);
 
-typedef ALIGN(struct DPSOFTRAST_State_s
+typedef ALIGN_STRUCT(DPSOFTRAST_State_s
 {
 	int fb_width;
 	int fb_height;