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

remove HaltNode code after uncommon trap calls

    Details

    • Subcomponent:
    • Resolved In Build:
      b23
    • CPU:
      generic
    • OS:
      generic

      Backports

        Description

        On x86 the usual uncommon trap code looks like this:

          0x000000010598efb6: mov $0xffffffad,%esi
          0x000000010598efbb: callq 0x0000000105965f20 ; OopMap{rbp=Oop [0]=Oop off=64}
                                                        ;*if_acmpne
                                                        ; - java.lang.Object::equals@2 (line 149)
                                                        ; {runtime_call}
          0x000000010598efc0: callq 0x00000001048e2834 ; {runtime_call}

        The first call is to the uncommon trap blob. The second one comes from the HaltNode basically putting verification code there to make sure we are not returning from the deopt blob. We don't need in a product build.

        The Halt node is matched in the .ad files to int3 of the MacroAssembler.

        A possible fix would be to change the implementation of MacroAssembler::int3 in all assembler_<os>_x86.cpp files. But that might break some other uses of int3.

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  xliu Xin Liu
                  Reporter:
                  twisti Christian Thalinger
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  8 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: