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));