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

[aarch64] assert(is_power_of_2(x)) failed: x must be a power of 2: 0xffffffff80000000

    XMLWordPrintable

Details

    Description

      The assertion was observed with the following stack:
      Stack: [0x0000ffff78274000,0x0000ffff78474000], sp=0x0000ffff7846e750, free space=2025k
      Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.so+0x35d580] exact_log2(long)+0x80
      V [libjvm.so+0x32dad4] far_cmpI_branch_bitNode::emit(CodeBuffer&, PhaseRegAlloc*) const+0x2c4
      V [libjvm.so+0x7d3fa8] Compile::scratch_emit_size(Node const*)+0x350
      V [libjvm.so+0x11ee21c] Compile::shorten_branches(unsigned int*, Compile::BufferSizingData&)+0x80c
      V [libjvm.so+0x11fc4b8] Compile::Output()+0x908
      V [libjvm.so+0x7e4430] Compile::Code_Gen()+0x420
      V [libjvm.so+0x7e8260] Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool, DirectiveSet*)+0x1050
      V [libjvm.so+0x653020] C2Compiler::compile_method(ciEnv*, ciMethod*, int, DirectiveSet*)+0xf8

      aarch64.ad uses exact_log2 in far_cmpI_branch_bit. The int value gets implicitly converted to long using sign extend. We'd need zero extend.

      Attachments

        Issue Links

          Activity

            People

              aph Andrew Haley
              mdoerr Martin Doerr
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: