equal
deleted
inserted
replaced
97 |
97 |
98 // locals access |
98 // locals access |
99 void clear_locals(); // sets all locals to NULL; |
99 void clear_locals(); // sets all locals to NULL; |
100 |
100 |
101 void invalidate_local(int i) { |
101 void invalidate_local(int i) { |
102 assert(_locals.at(i)->type()->is_single_word() || |
102 assert(!_locals.at(i)->type()->is_double_word() || |
103 _locals.at(i + 1) == NULL, "hi-word of doubleword value must be NULL"); |
103 _locals.at(i + 1) == NULL, "hi-word of doubleword value must be NULL"); |
104 _locals.at_put(i, NULL); |
104 _locals.at_put(i, NULL); |
105 } |
105 } |
106 |
106 |
107 Value local_at(int i) const { |
107 Value local_at(int i) const { |
108 Value x = _locals.at(i); |
108 Value x = _locals.at(i); |
109 assert(x == NULL || x->type()->is_single_word() || |
109 assert(x == NULL || !x->type()->is_double_word() || |
110 _locals.at(i + 1) == NULL, "hi-word of doubleword value must be NULL"); |
110 _locals.at(i + 1) == NULL, "hi-word of doubleword value must be NULL"); |
111 return x; |
111 return x; |
112 } |
112 } |
113 |
113 |
114 void store_local(int i, Value x) { |
114 void store_local(int i, Value x) { |
129 } |
129 } |
130 |
130 |
131 // stack access |
131 // stack access |
132 Value stack_at(int i) const { |
132 Value stack_at(int i) const { |
133 Value x = _stack.at(i); |
133 Value x = _stack.at(i); |
134 assert(x->type()->is_single_word() || |
134 assert(!x->type()->is_double_word() || |
135 _stack.at(i + 1) == NULL, "hi-word of doubleword value must be NULL"); |
135 _stack.at(i + 1) == NULL, "hi-word of doubleword value must be NULL"); |
136 return x; |
136 return x; |
137 } |
137 } |
138 |
138 |
139 Value stack_at_inc(int& i) const { |
139 Value stack_at_inc(int& i) const { |