Mercurial > hg > truffle
comparison src/cpu/x86/vm/c1_LIRAssembler_x86.cpp @ 18041:52b4284cb496
Merge with jdk8u20-b26
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Wed, 15 Oct 2014 16:02:50 +0200 |
parents | 89152779163c 0bf37f737702 |
children |
comparison
equal
deleted
inserted
replaced
17606:45d7b2c7029d | 18041:52b4284cb496 |
---|---|
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 |
800 if (c->as_jobject() == NULL) { | 800 if (c->as_jobject() == NULL) { |
801 if (UseCompressedOops && !wide) { | 801 if (UseCompressedOops && !wide) { |
802 __ movl(as_Address(addr), (int32_t)NULL_WORD); | 802 __ movl(as_Address(addr), (int32_t)NULL_WORD); |
803 } else { | 803 } else { |
804 #ifdef _LP64 | 804 #ifdef _LP64 |
805 __ xorptr(r10, r10); | 805 __ xorptr(rscratch1, rscratch1); |
806 null_check_here = code_offset(); | 806 null_check_here = code_offset(); |
807 __ movptr(as_Address(addr), r10); | 807 __ movptr(as_Address(addr), rscratch1); |
808 #else | 808 #else |
809 __ movptr(as_Address(addr), NULL_WORD); | 809 __ movptr(as_Address(addr), NULL_WORD); |
810 #endif | 810 #endif |
811 } | 811 } |
812 } else { | 812 } else { |