22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "asm/assembler.hpp"
27 #include "code/vmreg.hpp"
28
29 // First VMReg value that could refer to a stack slot
30 VMReg VMRegImpl::stack0 = (VMReg)(intptr_t)((ConcreteRegisterImpl::number_of_registers + 7) & ~7);
31
32 // VMRegs are 4 bytes wide on all platforms
33 const int VMRegImpl::stack_slot_size = 4;
34 const int VMRegImpl::slots_per_word = wordSize / stack_slot_size;
35
36 const int VMRegImpl::register_count = ConcreteRegisterImpl::number_of_registers;
37 // Register names
38 const char *VMRegImpl::regName[ConcreteRegisterImpl::number_of_registers];
39
40 void VMRegImpl::print_on(outputStream* st) const {
41 if( is_reg() ) {
42 assert( VMRegImpl::regName[value()], "" );
43 st->print("%s",VMRegImpl::regName[value()]);
44 } else if (is_stack()) {
45 int stk = value() - stack0->value();
46 st->print("[%d]", stk*4);
47 } else {
48 st->print("BAD!");
49 }
50 }
|
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "asm/assembler.hpp"
27 #include "code/vmreg.hpp"
28
29 // First VMReg value that could refer to a stack slot
30 VMReg VMRegImpl::stack0 = (VMReg)(intptr_t)((ConcreteRegisterImpl::number_of_registers + 7) & ~7);
31
32 // VMRegs are 4 bytes wide on all platforms
33 const int VMRegImpl::stack_slot_size = 4;
34 const int VMRegImpl::slots_per_word = wordSize / stack_slot_size;
35
36 const int VMRegImpl::register_count = ConcreteRegisterImpl::number_of_registers;
37 // Register names
38 const char *VMRegImpl::regName[ConcreteRegisterImpl::number_of_registers];
39
40 void VMRegImpl::print_on(outputStream* st) const {
41 if( is_reg() ) {
42 assert(VMRegImpl::regName[value()], "VMRegImpl::regName[%ld] returns NULL", value());
43 st->print("%s",VMRegImpl::regName[value()]);
44 } else if (is_stack()) {
45 int stk = value() - stack0->value();
46 st->print("[%d]", stk*4);
47 } else {
48 st->print("BAD!");
49 }
50 }
|