Mercurial > hg > truffle
comparison src/cpu/x86/vm/stubGenerator_x86_32.cpp @ 1506:2338d41fbd81
6943304: remove tagged stack interpreter
Reviewed-by: coleenp, never, gbenson
author | twisti |
---|---|
date | Fri, 30 Apr 2010 08:37:24 -0700 |
parents | 93767e6a2dfd |
children | c18cbe5936b8 |
comparison
equal
deleted
inserted
replaced
1505:0c5b3cf3c1f5 | 1506:2338d41fbd81 |
---|---|
137 sse_save = UseSSE > 0; | 137 sse_save = UseSSE > 0; |
138 | 138 |
139 // stub code | 139 // stub code |
140 __ enter(); | 140 __ enter(); |
141 __ movptr(rcx, parameter_size); // parameter counter | 141 __ movptr(rcx, parameter_size); // parameter counter |
142 __ shlptr(rcx, Interpreter::logStackElementSize()); // convert parameter count to bytes | 142 __ shlptr(rcx, Interpreter::logStackElementSize); // convert parameter count to bytes |
143 __ addptr(rcx, locals_count_in_bytes); // reserve space for register saves | 143 __ addptr(rcx, locals_count_in_bytes); // reserve space for register saves |
144 __ subptr(rsp, rcx); | 144 __ subptr(rsp, rcx); |
145 __ andptr(rsp, -(StackAlignmentInBytes)); // Align stack | 145 __ andptr(rsp, -(StackAlignmentInBytes)); // Align stack |
146 | 146 |
147 // save rdi, rsi, & rbx, according to C calling conventions | 147 // save rdi, rsi, & rbx, according to C calling conventions |
192 | 192 |
193 __ movptr(rdx, parameters); // parameter pointer | 193 __ movptr(rdx, parameters); // parameter pointer |
194 __ xorptr(rbx, rbx); | 194 __ xorptr(rbx, rbx); |
195 | 195 |
196 __ BIND(loop); | 196 __ BIND(loop); |
197 if (TaggedStackInterpreter) { | |
198 __ movptr(rax, Address(rdx, rcx, Interpreter::stackElementScale(), | |
199 -2*wordSize)); // get tag | |
200 __ movptr(Address(rsp, rbx, Interpreter::stackElementScale(), | |
201 Interpreter::expr_tag_offset_in_bytes(0)), rax); // store tag | |
202 } | |
203 | 197 |
204 // get parameter | 198 // get parameter |
205 __ movptr(rax, Address(rdx, rcx, Interpreter::stackElementScale(), -wordSize)); | 199 __ movptr(rax, Address(rdx, rcx, Interpreter::stackElementScale(), -wordSize)); |
206 __ movptr(Address(rsp, rbx, Interpreter::stackElementScale(), | 200 __ movptr(Address(rsp, rbx, Interpreter::stackElementScale(), |
207 Interpreter::expr_offset_in_bytes(0)), rax); // store parameter | 201 Interpreter::expr_offset_in_bytes(0)), rax); // store parameter |