|
48 | 48 |
|
49 | 49 | // MSVC - Sections |
50 | 50 |
|
51 | | -#define DECLARE_DATA_SECTION(NAME) __pragma(section(NAME, read)) |
52 | | -#define DECLARE_CODE_SECTION(NAME) __pragma(section(NAME, execute)) |
53 | | - |
| 51 | +#define DECLARE_SECTION(NAME) __pragma(section(NAME, execute)) |
| 52 | + |
54 | 53 | #define SECTION_READONLY "R" |
55 | 54 | #define SECTION_READWRITE "RW" |
56 | 55 | #define SECTION_EXECUTE_READ "ER" |
57 | 56 | #define SECTION_EXECUTE_READWRITE "ERW" |
58 | 57 | #define CHANGE_SECTION_ATTRIBUTES(NAME, ATTRIBUTES) LINKER_OPTION("/SECTION:" NAME "," ATTRIBUTES) |
59 | | - |
60 | | -#define DEFINE_DATA_SECTION(NAME, ATTRIBUTES) \ |
61 | | - DECLARE_DATA_SECTION(NAME) \ |
62 | | - CHANGE_SECTION_ATTRIBUTES(NAME, ATTRIBUTES) |
63 | | - |
64 | | -#define DEFINE_CODE_SECTION(NAME, ATTRIBUTES) \ |
65 | | - DECLARE_CODE_SECTION(NAME) \ |
| 58 | + |
| 59 | +#define DEFINE_SECTION(NAME, ATTRIBUTES) \ |
| 60 | + DECLARE_SECTION(NAME) \ |
66 | 61 | CHANGE_SECTION_ATTRIBUTES(NAME, ATTRIBUTES) |
67 | | - |
| 62 | + |
68 | 63 | #define MERGE_SECTION(FROM, TO) LINKER_OPTION("/MERGE:" FROM "=" TO) |
69 | | - |
| 64 | + |
70 | 65 | #define DEFINE_DATA_IN_SECTION(NAME) __declspec(allocate(NAME)) |
71 | 66 | #define DEFINE_CODE_IN_SECTION(NAME) __declspec(code_seg(NAME)) |
72 | | - |
| 67 | + |
73 | 68 | // MSVC - Optimization |
74 | | - |
| 69 | + |
75 | 70 | #define DISABLE_OPTIMIZATION(OPTION) \ |
76 | 71 | __pragma(optimize(OPTION, off)) |
77 | | - |
| 72 | + |
78 | 73 | #define ENABLE_OPTIMIZATION(OPTION) \ |
79 | 74 | __pragma(optimize(OPTION, on)) |
80 | | - |
| 75 | + |
81 | 76 | #define DISABLE_OPTIMIZATION_BEGIN(OPTION) \ |
82 | 77 | DISABLE_OPTIMIZATION(OPTION) \ |
83 | 78 | extern "C++" |
84 | | - |
| 79 | + |
85 | 80 | #define DISABLE_OPTIMIZATION_END(OPTION) \ |
86 | 81 | ENABLE_OPTIMIZATION(OPTION) |
87 | 82 |
|
|
0 commit comments