1.1 --- a/src/cpu/x86/vm/x86_32.ad Tue Jun 01 11:48:33 2010 -0700 1.2 +++ b/src/cpu/x86/vm/x86_32.ad Wed Jun 02 22:45:42 2010 -0700 1.3 @@ -1377,6 +1377,12 @@ 1.4 // registers? True for Intel but false for most RISCs 1.5 const bool Matcher::clone_shift_expressions = true; 1.6 1.7 +bool Matcher::narrow_oop_use_complex_address() { 1.8 + ShouldNotCallThis(); 1.9 + return true; 1.10 +} 1.11 + 1.12 + 1.13 // Is it better to copy float constants, or load them directly from memory? 1.14 // Intel can load a float constant from a direct address, requiring no 1.15 // extra registers. Most RISCs will have to materialize an address into a 1.16 @@ -1841,14 +1847,14 @@ 1.17 MacroAssembler _masm(&cbuf); 1.18 // RBP is preserved across all calls, even compiled calls. 1.19 // Use it to preserve RSP in places where the callee might change the SP. 1.20 - __ movptr(rbp, rsp); 1.21 + __ movptr(rbp_mh_SP_save, rsp); 1.22 debug_only(int off1 = cbuf.code_size()); 1.23 assert(off1 - off0 == preserve_SP_size(), "correct size prediction"); 1.24 %} 1.25 1.26 enc_class restore_SP %{ 1.27 MacroAssembler _masm(&cbuf); 1.28 - __ movptr(rsp, rbp); 1.29 + __ movptr(rsp, rbp_mh_SP_save); 1.30 %} 1.31 1.32 enc_class Java_Static_Call (method meth) %{ // JAVA STATIC CALL 1.33 @@ -13570,7 +13576,7 @@ 1.34 // Call Java Static Instruction (method handle version) 1.35 // Note: If this code changes, the corresponding ret_addr_offset() and 1.36 // compute_padding() functions will have to be adjusted. 1.37 -instruct CallStaticJavaHandle(method meth, eBPRegP ebp) %{ 1.38 +instruct CallStaticJavaHandle(method meth, eBPRegP ebp_mh_SP_save) %{ 1.39 match(CallStaticJava); 1.40 predicate(((CallStaticJavaNode*)n)->is_method_handle_invoke()); 1.41 effect(USE meth);