src/cpu/mips/vm/mips_64.ad

changeset 340
c0f304ca7c67
parent 337
04d30945ec8a
child 341
aa7285c094cd
     1.1 --- a/src/cpu/mips/vm/mips_64.ad	Mon Feb 27 16:49:02 2017 +0800
     1.2 +++ b/src/cpu/mips/vm/mips_64.ad	Tue Feb 28 09:53:43 2017 -0500
     1.3 @@ -2670,168 +2670,6 @@
     1.4       }
     1.5    %}
     1.6  
     1.7 -/*
     1.8 - * 1d4     storeImmN    [S0 + #16 (8-bit)], narrowoop: spec/benchmarks/_213_javac/Identifier:exact *   
     1.9 - *                      # compressed ptr ! Field: spec/benchmarks/_213_javac/Identifier.value
    1.10 - *  0x00000055648065d4: daddu at, s0, zero
    1.11 - *  0x00000055648065d8: lui t9, 0x0       ;   {oop(a 'spec/benchmarks/_213_javac/Identifier')}
    1.12 - *  0x00000055648065dc: ori t9, t9, 0xfffff610
    1.13 - *  0x00000055648065e0: dsll t9, t9, 16
    1.14 - *  0x00000055648065e4: ori t9, t9, 0xffffc628
    1.15 - *  0x00000055648065e8: sw t9, 0x10(at)
    1.16 - */
    1.17 -  enc_class storeImmN_enc (memory mem, immN src) %{
    1.18 -     MacroAssembler _masm(&cbuf);
    1.19 -     int  base = $mem$$base;
    1.20 -     int  index = $mem$$index;
    1.21 -     int  scale = $mem$$scale;
    1.22 -     int  disp = $mem$$disp;
    1.23 -     long * value = (long *)$src$$constant;
    1.24 -
    1.25 -     if (value == NULL) {
    1.26 -         guarantee(Assembler::is_simm16(disp), "FIXME: disp is not simm16!");
    1.27 -         if (index == 0) {
    1.28 -             __ sw(R0, as_Register(base), disp);
    1.29 -         } else {
    1.30 -             if (scale == 0) {
    1.31 -                __ daddu(AT, as_Register(base), as_Register(index));
    1.32 -             } else {
    1.33 -                __ dsll(AT, as_Register(index), scale);
    1.34 -                __ daddu(AT, as_Register(base), AT);
    1.35 -             }
    1.36 -             __ sw(R0, AT, disp);
    1.37 -         }
    1.38 -
    1.39 -         return;
    1.40 -     }
    1.41 -
    1.42 -     int oop_index = __ oop_recorder()->find_index((jobject)value);
    1.43 -     RelocationHolder rspec = oop_Relocation::spec(oop_index);
    1.44 -
    1.45 -     guarantee(scale == 0, "FIXME: scale is not zero !");
    1.46 -     guarantee(value != 0, "FIXME: value is zero !");
    1.47 -
    1.48 -    if (index != 0) {
    1.49 -         if (scale == 0) {
    1.50 -            __ daddu(AT, as_Register(base), as_Register(index));
    1.51 -         } else {
    1.52 -            __ dsll(AT, as_Register(index), scale);
    1.53 -            __ daddu(AT, as_Register(base), AT);
    1.54 -         }
    1.55 -	 if( Assembler::is_simm16(disp) ) { 
    1.56 -		 if(rspec.type() != relocInfo::none) {
    1.57 -			 __ relocate(rspec, Assembler::narrow_oop_operand);
    1.58 -			 __ li48(T9, oop_index);
    1.59 -		 } else {
    1.60 -			 __ set64(T9, oop_index);
    1.61 -		 }
    1.62 -		 __ sw(T9, AT, disp);
    1.63 -	 } else {
    1.64 -		 __ move(T9, disp);
    1.65 -		 __ addu(AT, AT, T9); 
    1.66 -
    1.67 -		 if(rspec.type() != relocInfo::none) {
    1.68 -			 __ relocate(rspec, Assembler::narrow_oop_operand);
    1.69 -			 __ li48(T9, oop_index);
    1.70 -		 } else {
    1.71 -			 __ set64(T9, oop_index);
    1.72 -		 }
    1.73 -		 __ sw(T9, AT, 0);
    1.74 -	 }
    1.75 -     }
    1.76 -     else {
    1.77 -         if( Assembler::is_simm16(disp) ) { 
    1.78 -		 if($src->constant_reloc() != relocInfo::none) {
    1.79 -			 __ relocate(rspec, Assembler::narrow_oop_operand);
    1.80 -			 __ li48(T9, oop_index);
    1.81 -		 } else {
    1.82 -                         __ set64(T9, oop_index);
    1.83 -	         }     
    1.84 -	         __ sw(T9, as_Register(base), disp);
    1.85 -	 } else {
    1.86 -		 __ move(T9, disp);
    1.87 -		 __ daddu(AT, as_Register(base), T9);  
    1.88 -
    1.89 -		 if($src->constant_reloc() != relocInfo::none){
    1.90 -			 __ relocate(rspec, Assembler::narrow_oop_operand);
    1.91 -			 __ li48(T9, oop_index);
    1.92 -		 } else {
    1.93 -			 __ set64(T9, oop_index);
    1.94 -		 }     
    1.95 -		 __ sw(T9, AT, 0);
    1.96 -         }     
    1.97 -     }
    1.98 -  %}
    1.99 -
   1.100 -  enc_class storeImmNKlass_enc (memory mem, immNKlass src) %{
   1.101 -     MacroAssembler _masm(&cbuf);
   1.102 -
   1.103 -     assert (UseCompressedOops, "should only be used for compressed headers");
   1.104 -     assert (__ oop_recorder() != NULL, "this assembler needs an OopRecorder");
   1.105 -
   1.106 -     int  base = $mem$$base;
   1.107 -     int  index = $mem$$index;
   1.108 -     int  scale = $mem$$scale;
   1.109 -     int  disp = $mem$$disp;
   1.110 -     long value = $src$$constant;
   1.111 -
   1.112 -	 int klass_index = __ oop_recorder()->find_index((Klass*)value);
   1.113 -	 RelocationHolder rspec = metadata_Relocation::spec(klass_index);
   1.114 -	 long narrowp = Klass::encode_klass((Klass*)value);
   1.115 -
   1.116 -	 if(index!=0){
   1.117 -                 if (scale == 0) {
   1.118 -                    __ daddu(AT, as_Register(base), as_Register(index));
   1.119 -                 } else {
   1.120 -                    __ dsll(AT, as_Register(index), scale);
   1.121 -                    __ daddu(AT, as_Register(base), AT);
   1.122 -                 }
   1.123 -
   1.124 -		 if( Assembler::is_simm16(disp) ) { 
   1.125 -			 if(rspec.type() != relocInfo::none){
   1.126 -				 __ relocate(rspec, Assembler::narrow_oop_operand);
   1.127 -				 __ li48(T9, narrowp);
   1.128 -			 } else {
   1.129 -				 __ set64(T9, narrowp);
   1.130 -			 }
   1.131 -			 __ sw(T9, AT, disp);
   1.132 -		 } else {
   1.133 -			 __ move(T9, disp);
   1.134 -			 __ daddu(AT, AT, T9); 
   1.135 -
   1.136 -			 if(rspec.type() != relocInfo::none){
   1.137 -				 __ relocate(rspec, Assembler::narrow_oop_operand);
   1.138 -				 __ li48(T9, narrowp);
   1.139 -			 } else {
   1.140 -				 __ set64(T9, narrowp);
   1.141 -			 }
   1.142 -
   1.143 -			 __ sw(T9, AT, 0);
   1.144 -		 }    
   1.145 -	 } else {
   1.146 -		 if( Assembler::is_simm16(disp) ) { 
   1.147 -			 if(rspec.type() != relocInfo::none){
   1.148 -				 __ relocate(rspec, Assembler::narrow_oop_operand);
   1.149 -				 __ li48(T9, narrowp);
   1.150 -			 }
   1.151 -			 else {
   1.152 -				 __ set64(T9, narrowp);
   1.153 -			 }
   1.154 -			 __ sw(T9, as_Register(base), disp);
   1.155 -		 } else {
   1.156 -			 __ move(T9, disp);
   1.157 -			 __ daddu(AT, as_Register(base), T9); 
   1.158 -
   1.159 -			 if(rspec.type() != relocInfo::none){
   1.160 -				 __ relocate(rspec, Assembler::narrow_oop_operand);
   1.161 -				 __ li48(T9, narrowp);
   1.162 -			 } else {
   1.163 -				 __ set64(T9, narrowp);
   1.164 -			 }
   1.165 -			 __ sw(T9, AT, 0);
   1.166 -		 }    
   1.167 -	 }
   1.168 -  %}
   1.169  
   1.170    enc_class storeImmN0_enc(memory mem, ImmN0 src) %{
   1.171       MacroAssembler _masm(&cbuf);
   1.172 @@ -6334,26 +6172,6 @@
   1.173    ins_pipe( ialu_storeI );
   1.174  %}
   1.175  
   1.176 -instruct storeImmN(memory mem, immN src)
   1.177 -%{
   1.178 -  match(Set mem (StoreN mem src));
   1.179 -
   1.180 -  ins_cost(150); // XXX
   1.181 -  format %{ "storeImmN    $mem, $src\t# compressed ptr @ storeImmN" %}
   1.182 -  ins_encode(storeImmN_enc(mem, src));
   1.183 -  ins_pipe( ialu_storeI );
   1.184 -%}
   1.185 -
   1.186 -instruct storeImmNKlass(memory mem, immNKlass src)
   1.187 -%{
   1.188 -  match(Set mem (StoreNKlass mem src));
   1.189 -
   1.190 -  ins_cost(150); // XXX
   1.191 -  format %{ "sw    $mem, $src\t# compressed klass ptr @ storeImmNKlass" %}
   1.192 -  ins_encode(storeImmNKlass_enc(mem, src));
   1.193 -  ins_pipe( ialu_storeI );
   1.194 -%}
   1.195 -
   1.196  // Store Byte
   1.197  instruct storeB(memory mem, mRegI src) %{
   1.198    match(Set mem (StoreB mem src));

mercurial