Mercurial > hg > truffle
diff src/cpu/x86/vm/x86_32.ad @ 1579:e9ff18c4ace7
Merge
author | jrose |
---|---|
date | Wed, 02 Jun 2010 22:45:42 -0700 |
parents | c18cbe5936b8 3657cb01ffc5 |
children | f55c4f82ab9d |
line wrap: on
line diff
--- a/src/cpu/x86/vm/x86_32.ad Tue Jun 01 11:48:33 2010 -0700 +++ b/src/cpu/x86/vm/x86_32.ad Wed Jun 02 22:45:42 2010 -0700 @@ -1377,6 +1377,12 @@ // registers? True for Intel but false for most RISCs const bool Matcher::clone_shift_expressions = true; +bool Matcher::narrow_oop_use_complex_address() { + ShouldNotCallThis(); + return true; +} + + // Is it better to copy float constants, or load them directly from memory? // Intel can load a float constant from a direct address, requiring no // extra registers. Most RISCs will have to materialize an address into a @@ -1841,14 +1847,14 @@ MacroAssembler _masm(&cbuf); // RBP is preserved across all calls, even compiled calls. // Use it to preserve RSP in places where the callee might change the SP. - __ movptr(rbp, rsp); + __ movptr(rbp_mh_SP_save, rsp); debug_only(int off1 = cbuf.code_size()); assert(off1 - off0 == preserve_SP_size(), "correct size prediction"); %} enc_class restore_SP %{ MacroAssembler _masm(&cbuf); - __ movptr(rsp, rbp); + __ movptr(rsp, rbp_mh_SP_save); %} enc_class Java_Static_Call (method meth) %{ // JAVA STATIC CALL @@ -13570,7 +13576,7 @@ // Call Java Static Instruction (method handle version) // Note: If this code changes, the corresponding ret_addr_offset() and // compute_padding() functions will have to be adjusted. -instruct CallStaticJavaHandle(method meth, eBPRegP ebp) %{ +instruct CallStaticJavaHandle(method meth, eBPRegP ebp_mh_SP_save) %{ match(CallStaticJava); predicate(((CallStaticJavaNode*)n)->is_method_handle_invoke()); effect(USE meth);