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 {