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

      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.

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

              Created:
              Updated:
              Resolved: