31 # include "adfiles/adGlobals_x86_32.hpp"
32 #endif
33 #ifdef TARGET_ARCH_MODEL_x86_64
34 # include "adfiles/adGlobals_x86_64.hpp"
35 #endif
36 #ifdef TARGET_ARCH_MODEL_sparc
37 # include "adfiles/adGlobals_sparc.hpp"
38 #endif
39 #ifdef TARGET_ARCH_MODEL_zero
40 # include "adfiles/adGlobals_zero.hpp"
41 #endif
42 #ifdef TARGET_ARCH_MODEL_arm
43 # include "adfiles/adGlobals_arm.hpp"
44 #endif
45 #ifdef TARGET_ARCH_MODEL_ppc_32
46 # include "adfiles/adGlobals_ppc_32.hpp"
47 #endif
48 #ifdef TARGET_ARCH_MODEL_ppc_64
49 # include "adfiles/adGlobals_ppc_64.hpp"
50 #endif
51
52 //------------------------------OptoReg----------------------------------------
53 // We eventually need Registers for the Real World. Registers are essentially
54 // non-SSA names. A Register is represented as a number. Non-regular values
55 // (e.g., Control, Memory, I/O) use the Special register. The actual machine
56 // registers (as described in the ADL file for a machine) start at zero.
57 // Stack-slots (spill locations) start at the nest Chunk past the last machine
58 // register.
59 //
60 // Note that stack spill-slots are treated as a very large register set.
61 // They have all the correct properties for a Register: not aliased (unique
62 // named). There is some simple mapping from a stack-slot register number
63 // to the actual location on the stack; this mapping depends on the calling
64 // conventions and is described in the ADL.
65 //
66 // Note that Name is not enum. C++ standard defines that the range of enum
67 // is the range of smallest bit-field that can represent all enumerators
68 // declared in the enum. The result of assigning a value to enum is undefined
69 // if the value is outside the enumeration's valid range. OptoReg::Name is
70 // typedef'ed as int, because it needs to be able to represent spill-slots.
|
31 # include "adfiles/adGlobals_x86_32.hpp"
32 #endif
33 #ifdef TARGET_ARCH_MODEL_x86_64
34 # include "adfiles/adGlobals_x86_64.hpp"
35 #endif
36 #ifdef TARGET_ARCH_MODEL_sparc
37 # include "adfiles/adGlobals_sparc.hpp"
38 #endif
39 #ifdef TARGET_ARCH_MODEL_zero
40 # include "adfiles/adGlobals_zero.hpp"
41 #endif
42 #ifdef TARGET_ARCH_MODEL_arm
43 # include "adfiles/adGlobals_arm.hpp"
44 #endif
45 #ifdef TARGET_ARCH_MODEL_ppc_32
46 # include "adfiles/adGlobals_ppc_32.hpp"
47 #endif
48 #ifdef TARGET_ARCH_MODEL_ppc_64
49 # include "adfiles/adGlobals_ppc_64.hpp"
50 #endif
51 #ifdef TARGET_ARCH_MODEL_aarch64
52 # include "adfiles/adGlobals_aarch64.hpp"
53 #endif
54
55 //------------------------------OptoReg----------------------------------------
56 // We eventually need Registers for the Real World. Registers are essentially
57 // non-SSA names. A Register is represented as a number. Non-regular values
58 // (e.g., Control, Memory, I/O) use the Special register. The actual machine
59 // registers (as described in the ADL file for a machine) start at zero.
60 // Stack-slots (spill locations) start at the nest Chunk past the last machine
61 // register.
62 //
63 // Note that stack spill-slots are treated as a very large register set.
64 // They have all the correct properties for a Register: not aliased (unique
65 // named). There is some simple mapping from a stack-slot register number
66 // to the actual location on the stack; this mapping depends on the calling
67 // conventions and is described in the ADL.
68 //
69 // Note that Name is not enum. C++ standard defines that the range of enum
70 // is the range of smallest bit-field that can represent all enumerators
71 // declared in the enum. The result of assigning a value to enum is undefined
72 // if the value is outside the enumeration's valid range. OptoReg::Name is
73 // typedef'ed as int, because it needs to be able to represent spill-slots.
|