< prev index next >

src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp

Print this page

2041       sve_and(vtmp, T, min_jlong);
2042       sve_orr(vtmp, T, jlong_cast(1.0));
2043       break;
2044     default:
2045       assert(false, "unsupported");
2046       ShouldNotReachHere();
2047     }
2048     sve_sel(dst, T, pgtmp, vtmp, src); // Select either from src or vtmp based on the predicate register pgtmp
2049                                        // Result in dst
2050 }
2051 
2052 bool C2_MacroAssembler::in_scratch_emit_size() {
2053   if (ciEnv::current()->task() != nullptr) {
2054     PhaseOutput* phase_output = Compile::current()->output();
2055     if (phase_output != nullptr && phase_output->in_scratch_emit_size()) {
2056       return true;
2057     }
2058   }
2059   return MacroAssembler::in_scratch_emit_size();
2060 }













2041       sve_and(vtmp, T, min_jlong);
2042       sve_orr(vtmp, T, jlong_cast(1.0));
2043       break;
2044     default:
2045       assert(false, "unsupported");
2046       ShouldNotReachHere();
2047     }
2048     sve_sel(dst, T, pgtmp, vtmp, src); // Select either from src or vtmp based on the predicate register pgtmp
2049                                        // Result in dst
2050 }
2051 
2052 bool C2_MacroAssembler::in_scratch_emit_size() {
2053   if (ciEnv::current()->task() != nullptr) {
2054     PhaseOutput* phase_output = Compile::current()->output();
2055     if (phase_output != nullptr && phase_output->in_scratch_emit_size()) {
2056       return true;
2057     }
2058   }
2059   return MacroAssembler::in_scratch_emit_size();
2060 }
2061 
2062 void C2_MacroAssembler::load_nklass_compact(Register dst, Register obj) {
2063   C2LoadNKlassStub* stub = new (Compile::current()->comp_arena()) C2LoadNKlassStub(dst);
2064   Compile::current()->output()->add_stub(stub);
2065   ldr(dst, Address(obj, oopDesc::mark_offset_in_bytes()));
2066   // NOTE: We can't use tbnz here, because the target is sometimes too far away
2067   // and cannot be encoded.
2068   tst(dst, markWord::monitor_value);
2069   br(Assembler::NE, stub->entry());
2070   bind(stub->continuation());
2071   lsr(dst, dst, markWord::klass_shift);
2072 }
< prev index next >