src/cpu/mips/vm/mips_64.ad

changeset 344
8357bf6d6758
parent 343
466bde9d05f8
child 346
3a6b04bc4dd7
     1.1 --- a/src/cpu/mips/vm/mips_64.ad	Tue Feb 28 12:02:36 2017 -0500
     1.2 +++ b/src/cpu/mips/vm/mips_64.ad	Wed Mar 01 00:42:08 2017 -0500
     1.3 @@ -6352,25 +6352,8 @@
     1.4    ins_cost(125);
     1.5    format %{ "li    $dst, $src\t# compressed ptr @ loadConN" %}
     1.6    ins_encode %{
     1.7 -    address con = (address)$src$$constant;
     1.8 -    if (con == NULL) {
     1.9 -      ShouldNotReachHere();
    1.10 -    } else {
    1.11 -		assert (UseCompressedOops, "should only be used for compressed headers");
    1.12 -		assert (Universe::heap() != NULL, "java heap should be initialized");
    1.13 -		assert (__ oop_recorder() != NULL, "this assembler needs an OopRecorder");
    1.14 -
    1.15 -		Register dst = $dst$$Register;
    1.16 -		long*   value = (long*)$src$$constant;
    1.17 -		int oop_index = __ oop_recorder()->find_index((jobject)value);
    1.18 -		RelocationHolder rspec = oop_Relocation::spec(oop_index);
    1.19 -		if(rspec.type()!=relocInfo::none){
    1.20 -			__ relocate(rspec, Assembler::narrow_oop_operand);
    1.21 -			__ li48(dst, oop_index);
    1.22 -		} else {
    1.23 -			__ set64(dst, oop_index);
    1.24 -		}
    1.25 -    }
    1.26 +    Register dst = $dst$$Register;
    1.27 +    __ set_narrow_oop(dst, (jobject)$src$$constant);
    1.28    %}
    1.29    ins_pipe( ialu_regI_regI ); // XXX
    1.30  %}
    1.31 @@ -6381,24 +6364,8 @@
    1.32    ins_cost(125);
    1.33    format %{ "li    $dst, $src\t# compressed klass ptr @ loadConNKlass" %}
    1.34    ins_encode %{
    1.35 -    address con = (address)$src$$constant;
    1.36 -    if (con == NULL) {
    1.37 -      ShouldNotReachHere();
    1.38 -    } else {
    1.39 -		Register dst = $dst$$Register;
    1.40 -		long*   value = (long*)$src$$constant;
    1.41 -
    1.42 -		int klass_index = __ oop_recorder()->find_index((Klass*)value);
    1.43 -		RelocationHolder rspec = metadata_Relocation::spec(klass_index);
    1.44 -		long narrowp = (long)Klass::encode_klass((Klass*)value);
    1.45 -
    1.46 -		if(rspec.type()!=relocInfo::none){
    1.47 -			__ relocate(rspec, Assembler::narrow_oop_operand);
    1.48 -			__ li48(dst, narrowp);
    1.49 -		} else {
    1.50 -			__ set64(dst, narrowp);
    1.51 -		}
    1.52 -    }
    1.53 +    Register dst = $dst$$Register;
    1.54 +    __ set_narrow_klass(dst, (Klass*)$src$$constant);
    1.55    %}
    1.56    ins_pipe( ialu_regI_regI ); // XXX
    1.57  %}

mercurial