Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/libsnes/bsnes/nall/endian.hpp
2 views
1
#ifndef NALL_ENDIAN_HPP
2
#define NALL_ENDIAN_HPP
3
4
#include <nall/intrinsics.hpp>
5
6
#if defined(ENDIAN_LSB)
7
//little-endian: uint8_t[] { 0x01, 0x02, 0x03, 0x04 } == 0x04030201
8
#define order_lsb2(a,b) a,b
9
#define order_lsb3(a,b,c) a,b,c
10
#define order_lsb4(a,b,c,d) a,b,c,d
11
#define order_lsb5(a,b,c,d,e) a,b,c,d,e
12
#define order_lsb6(a,b,c,d,e,f) a,b,c,d,e,f
13
#define order_lsb7(a,b,c,d,e,f,g) a,b,c,d,e,f,g
14
#define order_lsb8(a,b,c,d,e,f,g,h) a,b,c,d,e,f,g,h
15
#define order_msb2(a,b) b,a
16
#define order_msb3(a,b,c) c,b,a
17
#define order_msb4(a,b,c,d) d,c,b,a
18
#define order_msb5(a,b,c,d,e) e,d,c,b,a
19
#define order_msb6(a,b,c,d,e,f) f,e,d,c,b,a
20
#define order_msb7(a,b,c,d,e,f,g) g,f,e,d,c,b,a
21
#define order_msb8(a,b,c,d,e,f,g,h) h,g,f,e,d,c,b,a
22
#elif defined(ENDIAN_MSB)
23
//big-endian: uint8_t[] { 0x01, 0x02, 0x03, 0x04 } == 0x01020304
24
#define order_lsb2(a,b) b,a
25
#define order_lsb3(a,b,c) c,b,a
26
#define order_lsb4(a,b,c,d) d,c,b,a
27
#define order_lsb5(a,b,c,d,e) e,d,c,b,a
28
#define order_lsb6(a,b,c,d,e,f) f,e,d,c,b,a
29
#define order_lsb7(a,b,c,d,e,f,g) g,f,e,d,c,b,a
30
#define order_lsb8(a,b,c,d,e,f,g,h) h,g,f,e,d,c,b,a
31
#define order_msb2(a,b) a,b
32
#define order_msb3(a,b,c) a,b,c
33
#define order_msb4(a,b,c,d) a,b,c,d
34
#define order_msb5(a,b,c,d,e) a,b,c,d,e
35
#define order_msb6(a,b,c,d,e,f) a,b,c,d,e,f
36
#define order_msb7(a,b,c,d,e,f,g) a,b,c,d,e,f,g
37
#define order_msb8(a,b,c,d,e,f,g,h) a,b,c,d,e,f,g,h
38
#else
39
#error "Unknown endian. Please specify in nall/intrinsics.hpp"
40
#endif
41
42
#endif
43
44