Browse code

Updating the VBA-M code to revision 1231.

Naram Qashat authored on 2014/09/08 12:20:28
Showing 1 changed files
... ...
@@ -1,28 +1,25 @@
1
-#ifndef PORT_H
2
-#define PORT_H
1
+#pragma once
3 2
 
4 3
 #include <cstdint>
5 4
 
6 5
 #ifdef WORDS_BIGENDIAN
7
-#if defined(__GNUC__) && defined(__ppc__)
6
+# if defined(__GNUC__) && defined(__ppc__)
8 7
 #define READ16LE(base) \
9
-	({ \
10
-		unsigned short lhbrxResult; \
11
-		__asm__("lhbrx %0, 0, %1" : "=r" (lhbrxResult) : "r" (base) : "memory"); \
12
-		lhbrxResult; \
13
-	})
8
+	({ unsigned short lhbrxResult;       \
9
+		__asm__ ("lhbrx %0, 0, %1" : "=r" (lhbrxResult) : "r" (base) : "memory"); \
10
+		lhbrxResult; })
14 11
 
15 12
 #define READ32LE(base) \
16
-	({ \
17
-		unsigned long lwbrxResult; \
18
-		__asm__("lwbrx %0, 0, %1" : "=r" (lwbrxResult) : "r" (base) : "memory"); \
19
-		lwbrxResult; \
20
-	})
13
+	({ unsigned long lwbrxResult; \
14
+		__asm__ ("lwbrx %0, 0, %1" : "=r" (lwbrxResult) : "r" (base) : "memory"); \
15
+		lwbrxResult; })
21 16
 
22
-#define WRITE16LE(base, value) __asm__("sthbrx %0, 0, %1" : : "r" (value), "r" (base) : "memory")
17
+#define WRITE16LE(base, value) \
18
+	__asm__ ("sthbrx %0, 0, %1" : : "r" (value), "r" (base) : "memory")
23 19
 
24
-#define WRITE32LE(base, value) __asm__("stwbrx %0, 0, %1" : : "r" (value), "r" (base) : "memory")
25
-#else
20
+#define WRITE32LE(base, value) \
21
+	__asm__ ("stwbrx %0, 0, %1" : : "r" (value), "r" (base) : "memory")
22
+# else
26 23
 // swaps a 16-bit value
27 24
 inline uint16_t swap16(uint16_t v)
28 25
 {
... ...
@@ -35,16 +32,14 @@ inline uint32_t swap32(uint32_t v)
35 32
 	return (v << 24) | ((v << 8) & 0xff0000) | ((v >> 8) & 0xff00) | (v >> 24);
36 33
 }
37 34
 
38
-template<typename T> inline uint16_t READ16LE(T *x) { return swap16(*reinterpret_cast<uint16_t *>(x)); }
39
-template<typename T> inline uint32_t READ32LE(T *x) { return swap32(*reinterpret_cast<uint32_t *>(x)); }
35
+template<typename T> inline uint16_t READ16LE(const T *x) { return swap16(*reinterpret_cast<const uint16_t *>(x)); }
36
+template<typename T> inline uint32_t READ32LE(const T *x) { return swap32(*reinterpret_cast<const uint32_t *>(x)); }
40 37
 template<typename T> inline void WRITE16LE(T *x, uint16_t v) { *reinterpret_cast<uint16_t *>(x) = swap16(v); }
41 38
 template<typename T> inline void WRITE32LE(T *x, uint32_t v) { *reinterpret_cast<uint32_t *>(x) = swap32(v); }
42
-#endif
39
+# endif
43 40
 #else
44
-template<typename T> inline uint16_t READ16LE(T *x) { return *reinterpret_cast<uint16_t *>(x); }
45
-template<typename T> inline uint32_t READ32LE(T *x) { return *reinterpret_cast<uint32_t *>(x); }
41
+template<typename T> inline uint16_t READ16LE(const T *x) { return *reinterpret_cast<const uint16_t *>(x); }
42
+template<typename T> inline uint32_t READ32LE(const T *x) { return *reinterpret_cast<const uint32_t *>(x); }
46 43
 template<typename T> inline void WRITE16LE(T *x, uint16_t v) { *reinterpret_cast<uint16_t *>(x) = v; }
47 44
 template<typename T> inline void WRITE32LE(T *x, uint32_t v) { *reinterpret_cast<uint32_t *>(x) = v; }
48 45
 #endif
49
-
50
-#endif // PORT_H
Browse code

[GSF] Massive code cleanup.

(As an aside, blargg's code style makes me go blarg myself.)

Naram Qashat authored on 2013/05/14 01:07:18
Showing 1 changed files
... ...
@@ -3,56 +3,48 @@
3 3
 
4 4
 #include <cstdint>
5 5
 
6
-// swaps a 16-bit value
7
-static inline uint16_t swap16(uint16_t v)
8
-{
9
-  return (v<<8)|(v>>8);
10
-}
11
-
12
-// swaps a 32-bit value
13
-static inline uint32_t swap32(uint32_t v)
14
-{
15
-  return (v<<24)|((v<<8)&0xff0000)|((v>>8)&0xff00)|(v>>24);
16
-}
17
-
18 6
 #ifdef WORDS_BIGENDIAN
19 7
 #if defined(__GNUC__) && defined(__ppc__)
20
-
21 8
 #define READ16LE(base) \
22
-  ({ unsigned short lhbrxResult;       \
23
-     __asm__ ("lhbrx %0, 0, %1" : "=r" (lhbrxResult) : "r" (base) : "memory"); \
24
-      lhbrxResult; })
9
+	({ \
10
+		unsigned short lhbrxResult; \
11
+		__asm__("lhbrx %0, 0, %1" : "=r" (lhbrxResult) : "r" (base) : "memory"); \
12
+		lhbrxResult; \
13
+	})
25 14
 
26 15
 #define READ32LE(base) \
27
-  ({ unsigned long lwbrxResult; \
28
-     __asm__ ("lwbrx %0, 0, %1" : "=r" (lwbrxResult) : "r" (base) : "memory"); \
29
-      lwbrxResult; })
16
+	({ \
17
+		unsigned long lwbrxResult; \
18
+		__asm__("lwbrx %0, 0, %1" : "=r" (lwbrxResult) : "r" (base) : "memory"); \
19
+		lwbrxResult; \
20
+	})
30 21
 
31
-#define WRITE16LE(base, value) \
32
-  __asm__ ("sthbrx %0, 0, %1" : : "r" (value), "r" (base) : "memory")
33
-
34
-#define WRITE32LE(base, value) \
35
-  __asm__ ("stwbrx %0, 0, %1" : : "r" (value), "r" (base) : "memory")
22
+#define WRITE16LE(base, value) __asm__("sthbrx %0, 0, %1" : : "r" (value), "r" (base) : "memory")
36 23
 
24
+#define WRITE32LE(base, value) __asm__("stwbrx %0, 0, %1" : : "r" (value), "r" (base) : "memory")
37 25
 #else
38
-#define READ16LE(x) \
39
-  swap16(*((uint16_t *)(x)))
40
-#define READ32LE(x) \
41
-  swap32(*((uint32_t *)(x)))
42
-#define WRITE16LE(x,v) \
43
-  *((uint16_t *)x) = swap16((v))
44
-#define WRITE32LE(x,v) \
45
-  *((uint32_t *)x) = swap32((v))
26
+// swaps a 16-bit value
27
+inline uint16_t swap16(uint16_t v)
28
+{
29
+	return (v << 8) | (v >> 8);
30
+}
31
+
32
+// swaps a 32-bit value
33
+inline uint32_t swap32(uint32_t v)
34
+{
35
+	return (v << 24) | ((v << 8) & 0xff0000) | ((v >> 8) & 0xff00) | (v >> 24);
36
+}
37
+
38
+template<typename T> inline uint16_t READ16LE(T *x) { return swap16(*reinterpret_cast<uint16_t *>(x)); }
39
+template<typename T> inline uint32_t READ32LE(T *x) { return swap32(*reinterpret_cast<uint32_t *>(x)); }
40
+template<typename T> inline void WRITE16LE(T *x, uint16_t v) { *reinterpret_cast<uint16_t *>(x) = swap16(v); }
41
+template<typename T> inline void WRITE32LE(T *x, uint32_t v) { *reinterpret_cast<uint32_t *>(x) = swap32(v); }
46 42
 #endif
47 43
 #else
48
-#define READ16LE(x) \
49
-  *((uint16_t *)x)
50
-#define READ32LE(x) \
51
-  *((uint32_t *)x)
52
-#define WRITE16LE(x,v) \
53
-  *((uint16_t *)x) = (v)
54
-#define WRITE32LE(x,v) \
55
-  *((uint32_t *)x) = (v)
44
+template<typename T> inline uint16_t READ16LE(T *x) { return *reinterpret_cast<uint16_t *>(x); }
45
+template<typename T> inline uint32_t READ32LE(T *x) { return *reinterpret_cast<uint32_t *>(x); }
46
+template<typename T> inline void WRITE16LE(T *x, uint16_t v) { *reinterpret_cast<uint16_t *>(x) = v; }
47
+template<typename T> inline void WRITE32LE(T *x, uint32_t v) { *reinterpret_cast<uint32_t *>(x) = v; }
56 48
 #endif
57 49
 
58 50
 #endif // PORT_H
Browse code

[GSF] Removed Types.h because all it really was doing now was including stdint.

Naram Qashat authored on 2013/05/10 19:31:06
Showing 1 changed files
... ...
@@ -1,7 +1,7 @@
1 1
 #ifndef PORT_H
2 2
 #define PORT_H
3 3
 
4
-#include "Types.h"
4
+#include <cstdint>
5 5
 
6 6
 // swaps a 16-bit value
7 7
 static inline uint16_t swap16(uint16_t v)
Browse code

[GSF] Cleanup, a tiny bit of making sure it was like viogsf, also used the standard integer types and not VBA-M's typedefs.

Naram Qashat authored on 2013/05/10 17:45:36
Showing 1 changed files
... ...
@@ -4,13 +4,13 @@
4 4
 #include "Types.h"
5 5
 
6 6
 // swaps a 16-bit value
7
-static inline u16 swap16(u16 v)
7
+static inline uint16_t swap16(uint16_t v)
8 8
 {
9 9
   return (v<<8)|(v>>8);
10 10
 }
11 11
 
12 12
 // swaps a 32-bit value
13
-static inline u32 swap32(u32 v)
13
+static inline uint32_t swap32(uint32_t v)
14 14
 {
15 15
   return (v<<24)|((v<<8)&0xff0000)|((v>>8)&0xff00)|(v>>24);
16 16
 }
... ...
@@ -36,23 +36,23 @@ static inline u32 swap32(u32 v)
36 36
 
37 37
 #else
38 38
 #define READ16LE(x) \
39
-  swap16(*((u16 *)(x)))
39
+  swap16(*((uint16_t *)(x)))
40 40
 #define READ32LE(x) \
41
-  swap32(*((u32 *)(x)))
41
+  swap32(*((uint32_t *)(x)))
42 42
 #define WRITE16LE(x,v) \
43
-  *((u16 *)x) = swap16((v))
43
+  *((uint16_t *)x) = swap16((v))
44 44
 #define WRITE32LE(x,v) \
45
-  *((u32 *)x) = swap32((v))
45
+  *((uint32_t *)x) = swap32((v))
46 46
 #endif
47 47
 #else
48 48
 #define READ16LE(x) \
49
-  *((u16 *)x)
49
+  *((uint16_t *)x)
50 50
 #define READ32LE(x) \
51
-  *((u32 *)x)
51
+  *((uint32_t *)x)
52 52
 #define WRITE16LE(x,v) \
53
-  *((u16 *)x) = (v)
53
+  *((uint16_t *)x) = (v)
54 54
 #define WRITE32LE(x,v) \
55
-  *((u32 *)x) = (v)
55
+  *((uint32_t *)x) = (v)
56 56
 #endif
57 57
 
58 58
 #endif // PORT_H
Browse code

Import actual code.

Naram Qashat authored on 2013/03/26 02:41:19
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,58 @@
1
+#ifndef PORT_H
2
+#define PORT_H
3
+
4
+#include "Types.h"
5
+
6
+// swaps a 16-bit value
7
+static inline u16 swap16(u16 v)
8
+{
9
+  return (v<<8)|(v>>8);
10
+}
11
+
12
+// swaps a 32-bit value
13
+static inline u32 swap32(u32 v)
14
+{
15
+  return (v<<24)|((v<<8)&0xff0000)|((v>>8)&0xff00)|(v>>24);
16
+}
17
+
18
+#ifdef WORDS_BIGENDIAN
19
+#if defined(__GNUC__) && defined(__ppc__)
20
+
21
+#define READ16LE(base) \
22
+  ({ unsigned short lhbrxResult;       \
23
+     __asm__ ("lhbrx %0, 0, %1" : "=r" (lhbrxResult) : "r" (base) : "memory"); \
24
+      lhbrxResult; })
25
+
26
+#define READ32LE(base) \
27
+  ({ unsigned long lwbrxResult; \
28
+     __asm__ ("lwbrx %0, 0, %1" : "=r" (lwbrxResult) : "r" (base) : "memory"); \
29
+      lwbrxResult; })
30
+
31
+#define WRITE16LE(base, value) \
32
+  __asm__ ("sthbrx %0, 0, %1" : : "r" (value), "r" (base) : "memory")
33
+
34
+#define WRITE32LE(base, value) \
35
+  __asm__ ("stwbrx %0, 0, %1" : : "r" (value), "r" (base) : "memory")
36
+
37
+#else
38
+#define READ16LE(x) \
39
+  swap16(*((u16 *)(x)))
40
+#define READ32LE(x) \
41
+  swap32(*((u32 *)(x)))
42
+#define WRITE16LE(x,v) \
43
+  *((u16 *)x) = swap16((v))
44
+#define WRITE32LE(x,v) \
45
+  *((u32 *)x) = swap32((v))
46
+#endif
47
+#else
48
+#define READ16LE(x) \
49
+  *((u16 *)x)
50
+#define READ32LE(x) \
51
+  *((u32 *)x)
52
+#define WRITE16LE(x,v) \
53
+  *((u16 *)x) = (v)
54
+#define WRITE32LE(x,v) \
55
+  *((u32 *)x) = (v)
56
+#endif
57
+
58
+#endif // PORT_H