Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8283102

AArch64: Optimize BR+FAR_JUMP into one BR in MachUEPNode::emit

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Withdrawn
    • Icon: P4 P4
    • tbd
    • 19
    • hotspot

      https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/aarch64/aarch64.ad#L2342
      void MachUEPNode::emit(CodeBuffer& cbuf, PhaseRegAlloc* ra_) const
      {
        // This is the unverified entry point.
        C2_MacroAssembler _masm(&cbuf);

        __ cmp_klass(j_rarg0, rscratch2, rscratch1);
        Label skip;
        // TODO
        // can we avoid this skip and still use a reloc?
        __ br(Assembler::EQ, skip);
        __ far_jump(RuntimeAddress(SharedRuntime::get_ic_miss_stub()));
        __ bind(skip);
      }

      We can optimize BR+FAR_JUMP into BR when we know FAR_JUMP is B.

            eastigeevich Evgeny Astigeevich
            eastigeevich Evgeny Astigeevich
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: