Mercurial > hg > truffle
comparison src/cpu/x86/vm/frame_x86.cpp @ 1938:1aa5b22a7716
Support for custom stack area (needed for deoptimization).
author | Thomas Wuerthinger <wuerthinger@ssw.jku.at> |
---|---|
date | Mon, 27 Dec 2010 14:22:55 +0100 |
parents | 3e8fbc61cee8 |
children | 06f017f7daa7 |
comparison
equal
deleted
inserted
replaced
1937:4853c5cad3aa | 1938:1aa5b22a7716 |
---|---|
217 | 217 |
218 void frame::patch_pc(Thread* thread, address pc) { | 218 void frame::patch_pc(Thread* thread, address pc) { |
219 if (TracePcPatching) { | 219 if (TracePcPatching) { |
220 tty->print_cr("patch_pc at address" INTPTR_FORMAT " [" INTPTR_FORMAT " -> " INTPTR_FORMAT "] ", | 220 tty->print_cr("patch_pc at address" INTPTR_FORMAT " [" INTPTR_FORMAT " -> " INTPTR_FORMAT "] ", |
221 &((address *)sp())[-1], ((address *)sp())[-1], pc); | 221 &((address *)sp())[-1], ((address *)sp())[-1], pc); |
222 tty->print_cr("sp[0]: " INTPTR_FORMAT, ((intptr_t*)sp())[0]); | |
223 tty->print_cr("sp[1]: " INTPTR_FORMAT, ((intptr_t*)sp())[1]); | |
224 tty->print_cr("sp[2]: " INTPTR_FORMAT, ((intptr_t*)sp())[2]); | |
222 } | 225 } |
223 ((address *)sp())[-1] = pc; | 226 ((address *)sp())[-1] = pc; |
224 _cb = CodeCache::find_blob(pc); | 227 _cb = CodeCache::find_blob(pc); |
225 address original_pc = nmethod::get_deopt_original_pc(this); | 228 address original_pc = nmethod::get_deopt_original_pc(this); |
226 if (original_pc != NULL) { | 229 if (original_pc != NULL) { |