src/cpu/mips/vm/mips_64.ad

changeset 375
fb7da68ac0c3
parent 374
09f8c0c1f722
child 376
030cb2764106
     1.1 --- a/src/cpu/mips/vm/mips_64.ad	Wed Mar 08 08:57:26 2017 -0500
     1.2 +++ b/src/cpu/mips/vm/mips_64.ad	Mon Mar 13 01:52:16 2017 -0400
     1.3 @@ -682,7 +682,7 @@
     1.4  
     1.5  // relocation entries for call stub, compiled java to interpreter
     1.6  uint reloc_java_to_interp() {
     1.7 -  return 12;  //  in emit_java_to_interp +  in Java_Static_Call
     1.8 +  return 16;  //  in emit_java_to_interp +  in Java_Static_Call
     1.9  }
    1.10  
    1.11  bool Matcher::is_short_branch_offset(int rule, int br_size, int offset) {
    1.12 @@ -871,8 +871,8 @@
    1.13  
    1.14    //lui
    1.15    //ori
    1.16 -  //dsll
    1.17 -  //ori
    1.18 +  //nop
    1.19 +  //nop
    1.20  
    1.21    //jalr
    1.22    //nop
    1.23 @@ -953,25 +953,26 @@
    1.24  int MachCallStaticJavaNode::ret_addr_offset() {
    1.25    //lui
    1.26    //ori
    1.27 +  //nop
    1.28 +  //nop
    1.29    //jalr
    1.30    //nop
    1.31 -  return 16; 
    1.32 +  return 24; 
    1.33  }
    1.34  
    1.35  int MachCallDynamicJavaNode::ret_addr_offset() {
    1.36 -  assert(NativeCall::instruction_size == 24, "in MachCallDynamicJavaNode::ret_addr_offset");
    1.37 -  //The value ought to be 4 + 16 bytes.
    1.38    //lui IC_Klass,
    1.39    //ori IC_Klass,
    1.40    //dsll IC_Klass
    1.41    //ori IC_Klass
    1.42 +
    1.43    //lui T9
    1.44    //ori T9
    1.45 -  //dsll T9
    1.46 -  //ori T9
    1.47 +  //nop
    1.48 +  //nop
    1.49    //jalr T9
    1.50    //nop
    1.51 -  return 4 * 4 + NativeCall::instruction_size; 
    1.52 +  return 4 * 4 + 4 * 6; 
    1.53  }
    1.54  
    1.55  //=============================================================================
    1.56 @@ -3394,7 +3395,7 @@
    1.57        __ relocate(relocInfo::static_call_type);
    1.58      }
    1.59  
    1.60 -    __ patchable_call32(T9, $meth$$method);
    1.61 +    __ patchable_set48(T9, $meth$$method);
    1.62      __ jalr(T9);
    1.63      __ nop();
    1.64      if( _method ) {  // Emit stub for static call
    1.65 @@ -12063,7 +12064,7 @@
    1.66    ins_encode( Java_Static_Call( meth ) );
    1.67    ins_pipe( pipe_slow );
    1.68    ins_pc_relative(1);
    1.69 -  ins_alignment(8);
    1.70 +  ins_alignment(16);
    1.71  %}
    1.72  
    1.73  // Call Java Dynamic Instruction
    1.74 @@ -12074,7 +12075,7 @@
    1.75    effect(USE meth);
    1.76  
    1.77    ins_cost(300);
    1.78 -  format %{"MOV IC_Klass, (oop)-1 @ CallDynamicJavaDirect\n\t"
    1.79 +  format %{"MOV IC_Klass, (oop)-1\n\t"
    1.80             "CallDynamic @ CallDynamicJavaDirect" %}
    1.81    ins_encode( Java_Dynamic_Call( meth ) );
    1.82    ins_pipe( pipe_slow );

mercurial