91 enum { name##_##type##EnumValue = value##_##type##EnumValue }
92
93 #define REGISTER_DEFINITION(type, name) \
94 const type name = ((type)name##_##type##EnumValue)
95
96 #ifdef TARGET_ARCH_x86
97 # include "register_x86.hpp"
98 #endif
99 #ifdef TARGET_ARCH_sparc
100 # include "register_sparc.hpp"
101 #endif
102 #ifdef TARGET_ARCH_zero
103 # include "register_zero.hpp"
104 #endif
105 #ifdef TARGET_ARCH_arm
106 # include "register_arm.hpp"
107 #endif
108 #ifdef TARGET_ARCH_ppc
109 # include "register_ppc.hpp"
110 #endif
111
112
113 // Debugging support
114
115 inline void assert_different_registers(
116 AbstractRegister a,
117 AbstractRegister b
118 ) {
119 assert(
120 a != b,
121 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT "",
122 p2i(a), p2i(b))
123 );
124 }
125
126
127 inline void assert_different_registers(
128 AbstractRegister a,
129 AbstractRegister b,
130 AbstractRegister c
|
91 enum { name##_##type##EnumValue = value##_##type##EnumValue }
92
93 #define REGISTER_DEFINITION(type, name) \
94 const type name = ((type)name##_##type##EnumValue)
95
96 #ifdef TARGET_ARCH_x86
97 # include "register_x86.hpp"
98 #endif
99 #ifdef TARGET_ARCH_sparc
100 # include "register_sparc.hpp"
101 #endif
102 #ifdef TARGET_ARCH_zero
103 # include "register_zero.hpp"
104 #endif
105 #ifdef TARGET_ARCH_arm
106 # include "register_arm.hpp"
107 #endif
108 #ifdef TARGET_ARCH_ppc
109 # include "register_ppc.hpp"
110 #endif
111 #ifdef TARGET_ARCH_aarch64
112 # include "register_aarch64.hpp"
113 #endif
114
115
116 // Debugging support
117
118 inline void assert_different_registers(
119 AbstractRegister a,
120 AbstractRegister b
121 ) {
122 assert(
123 a != b,
124 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT "",
125 p2i(a), p2i(b))
126 );
127 }
128
129
130 inline void assert_different_registers(
131 AbstractRegister a,
132 AbstractRegister b,
133 AbstractRegister c
|