Mercurial > hg > graal-compiler
comparison src/cpu/x86/vm/c1_LIRAssembler_x86.cpp @ 17980:0bf37f737702
8032410: compiler/uncommontrap/TestStackBangRbp.java times out on Solaris-Sparc V9
Summary: make compiled code bang the stack by the worst case size of the interpreter frame at deoptimization points.
Reviewed-by: twisti, kvn
author | roland |
---|---|
date | Tue, 01 Apr 2014 09:36:49 +0200 |
parents | 876390ee9b6f |
children | 52b4284cb496 |
comparison
equal
deleted
inserted
replaced
17978:ad51f24671c2 | 17980:0bf37f737702 |
---|---|
286 // rcx: osr buffer | 286 // rcx: osr buffer |
287 // | 287 // |
288 | 288 |
289 // build frame | 289 // build frame |
290 ciMethod* m = compilation()->method(); | 290 ciMethod* m = compilation()->method(); |
291 __ build_frame(initial_frame_size_in_bytes()); | 291 __ build_frame(initial_frame_size_in_bytes(), bang_size_in_bytes()); |
292 | 292 |
293 // OSR buffer is | 293 // OSR buffer is |
294 // | 294 // |
295 // locals[nlocals-1..0] | 295 // locals[nlocals-1..0] |
296 // monitors[0..number_of_locks] | 296 // monitors[0..number_of_locks] |
374 __ mov_metadata(reg, o); | 374 __ mov_metadata(reg, o); |
375 patching_epilog(patch, lir_patch_normal, reg, info); | 375 patching_epilog(patch, lir_patch_normal, reg, info); |
376 } | 376 } |
377 | 377 |
378 // This specifies the rsp decrement needed to build the frame | 378 // This specifies the rsp decrement needed to build the frame |
379 int LIR_Assembler::initial_frame_size_in_bytes() { | 379 int LIR_Assembler::initial_frame_size_in_bytes() const { |
380 // if rounding, must let FrameMap know! | 380 // if rounding, must let FrameMap know! |
381 | 381 |
382 // The frame_map records size in slots (32bit word) | 382 // The frame_map records size in slots (32bit word) |
383 | 383 |
384 // subtract two words to account for return address and link | 384 // subtract two words to account for return address and link |