src/cpu/mips/vm/macroAssembler_mips.cpp

changeset 8865
ffcdff41a92f
parent 8862
fd13a567f179
child 8867
34020d024017
     1.1 --- a/src/cpu/mips/vm/macroAssembler_mips.cpp	Sat Jan 06 16:30:58 2018 +0800
     1.2 +++ b/src/cpu/mips/vm/macroAssembler_mips.cpp	Thu May 24 19:49:50 2018 +0800
     1.3 @@ -818,6 +818,28 @@
     1.4    jr(T9);
     1.5    nop();
     1.6  }
     1.7 +void MacroAssembler::mov_metadata(Address dst, Metadata* obj) {
     1.8 +  int oop_index;
     1.9 +  if (obj) {
    1.10 +    oop_index = oop_recorder()->find_index(obj);
    1.11 +  } else {
    1.12 +    oop_index = oop_recorder()->allocate_metadata_index(obj);
    1.13 +  }
    1.14 +  relocate(metadata_Relocation::spec(oop_index));
    1.15 +  patchable_set48(AT, (long)obj);
    1.16 +  sd(AT, dst);
    1.17 +}
    1.18 +
    1.19 +void MacroAssembler::mov_metadata(Register dst, Metadata* obj) {
    1.20 +  int oop_index;
    1.21 +  if (obj) {
    1.22 +    oop_index = oop_recorder()->find_index(obj);
    1.23 +  } else {
    1.24 +    oop_index = oop_recorder()->allocate_metadata_index(obj);
    1.25 +  }
    1.26 +  relocate(metadata_Relocation::spec(oop_index));
    1.27 +  patchable_set48(dst, (long)obj);
    1.28 +}
    1.29  
    1.30  void MacroAssembler::call(address entry) {
    1.31  // c/c++ code assume T9 is entry point, so we just always move entry to t9
    1.32 @@ -870,7 +892,7 @@
    1.33    assert(entry != NULL, "call most probably wrong");
    1.34    InstructionMark im(this);
    1.35    relocate(rh);
    1.36 -        patchable_call(entry);
    1.37 +  patchable_call(entry);
    1.38  }
    1.39  
    1.40  void MacroAssembler::c2bool(Register r) {
    1.41 @@ -1238,7 +1260,6 @@
    1.42    move(A0, java_thread);
    1.43    call(entry_point, relocInfo::runtime_call_type);
    1.44    delayed()->nop();
    1.45 -  //MacroAssembler::call_VM_leaf_base(entry_point, number_of_arguments);
    1.46  
    1.47    // restore the thread (cannot use the pushed argument since arguments
    1.48    // may be overwritten by C code generated by an optimizing compiler);

mercurial