<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Am 11.10.2011 18:54, schrieb Vladimir Kozlov:
    <blockquote cite="mid:4E9474AE.9050903@oracle.com" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      These bugs have evaluations in Comments section which
      unfortunately is
      not visible outside. I moved my comments to Evaluation section and
      included them below.<br>
    </blockquote>
    Much thanks, + for your fast answer!<br>
    <br>
    <blockquote cite="mid:4E9474AE.9050903@oracle.com" type="cite">
      <blockquote
cite="mid:CAHjP37G=rruVnM=f2D+QLLBKUU4OA_cht4U=NEOkjiPV-YFETw@mail.gmail.com"
        type="cite">
        <div class="gmail_quote">
          <blockquote class="gmail_quote" style="border-left: 1px solid
            rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left:
            1ex;">
            <div bgcolor="#FFFFFF" text="#000000"> <a
                moz-do-not-send="true"
                href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6914095"
                target="_blank">6914095</a> - HotSpot should reuse
              invariant loop
              parameter<br>
            </div>
          </blockquote>
          <br>
        </div>
      </blockquote>
      It would be nice if 32bit x86 had more registers. Unfortunately we
      have
      to reuse registers otherwise we will get more spills on stack
      which
      will cause more performance regression then keeping value in
      register.
      And x*c+c&nbsp; is very fast (few cycles) on modern cpus.<br>
      *** (#3 of 3): 2010-11-09 15:31:21 PST <a moz-do-not-send="true"
        class="moz-txt-link-abbreviated"
        href="mailto:vladimir.kozlov@oracle.com">vladimir.kozlov@oracle.com</a><br>
    </blockquote>
    Yes, this would hold, if x is held in register while looping.<br>
    But in my code, even for the inner loop, x is spilled to stack,
    here: 0xc(%esp)<br>
    So I still think, it would be better to alternatively spill x*c+c to
    the stack in the inner loop, and access x only in the outer loop.<br>
    Or do I miss something?<br>
    <br>
    <blockquote cite="mid:4E9474AE.9050903@oracle.com" type="cite">
      <blockquote
cite="mid:CAHjP37G=rruVnM=f2D+QLLBKUU4OA_cht4U=NEOkjiPV-YFETw@mail.gmail.com"
        type="cite">
        <div class="gmail_quote">
          <blockquote class="gmail_quote" style="border-left: 1px solid
            rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left:
            1ex;">
            <div bgcolor="#FFFFFF" text="#000000"> <a
                moz-do-not-send="true"
                href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6914113"
                target="_blank">6914113</a> - <font face="">Copy int to
                byte[] in 1
                step</font><br>
            </div>
          </blockquote>
        </div>
      </blockquote>
      Will not do this. C2 type system will not allow store int into
      byte
      array. Other platforms require address alignment to 4 bytes for
      int
      store. Also on platforms with different endian the result will be
      different.<br>
      *** (#2 of 2): 2010-08-25 14:51:13 PDT <a moz-do-not-send="true"
        class="moz-txt-link-abbreviated"
        href="mailto:vladimir.kozlov@oracle.com">vladimir.kozlov@oracle.com</a><br>
    </blockquote>
    In java.nio.Bits I see code like:<br>
    &nbsp;&nbsp;&nbsp; static void putIntB(ByteBuffer bb, int bi, int x) {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bb._put(bi + 0, int3(x));<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bb._put(bi + 1, int2(x));<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bb._put(bi + 2, int1(x));<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bb._put(bi + 3, int0(x));<br>
    &nbsp;&nbsp;&nbsp; }<br>
    AFAIK, this code becomes intrinsified to native "<font face="">Copy
      int to byte[] in 1
      step</font>" by the VM. Correct me, if I'm wrong.<br>
    What I want is, that if Hotspot detects such pattern (compiled in
    the bytecode), preferably in a loop, it would (1) use an aligned
    byte array, if necessary, and (2) then inline the existing
    intrinsification. Endianess should be no problem, as I already see
    different endian versions.<br>
    <br>
    <blockquote cite="mid:4E9474AE.9050903@oracle.com" type="cite">
      <blockquote
cite="mid:CAHjP37G=rruVnM=f2D+QLLBKUU4OA_cht4U=NEOkjiPV-YFETw@mail.gmail.com"
        type="cite">
        <div class="gmail_quote">
          <blockquote class="gmail_quote" style="border-left: 1px solid
            rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left:
            1ex;">
            <div bgcolor="#FFFFFF" text="#000000"><a
                moz-do-not-send="true"
                href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6933327"
                target="_blank">6933327</a> - <font face="">Use shifted
                addressing
                modes instead of shift instuctions</font><br>
            </div>
          </blockquote>
        </div>
      </blockquote>
      Will not fix. Using&nbsp; addressing mode involves addess unit which
      may
      have negative effect if you have memory access instructions near
      this
      code.<br>
      *** (#2 of 2): 2010-08-25 14:29:34 PDT <a moz-do-not-send="true"
        class="moz-txt-link-abbreviated"
        href="mailto:vladimir.kozlov@oracle.com">vladimir.kozlov@oracle.com</a><br>
    </blockquote>
    What is "memory access instructions _near this
    code_" ?<br>
    <br>
    <blockquote cite="mid:4E9474AE.9050903@oracle.com" type="cite">
      <blockquote
cite="mid:CAHjP37G=rruVnM=f2D+QLLBKUU4OA_cht4U=NEOkjiPV-YFETw@mail.gmail.com"
        type="cite">
        <div class="gmail_quote">
          <blockquote class="gmail_quote" style="border-left: 1px solid
            rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left:
            1ex;">
            <div bgcolor="#FFFFFF" text="#000000"> <a
                moz-do-not-send="true"
                href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6935994"
                target="_blank">6935994</a> - <font face="">Use as less
                bits as
                necessary<br>
              </font></div>
          </blockquote>
        </div>
      </blockquote>
      Should not do this since the other part of register will not be
      initialized to 0.<br>
      *** (#2 of 2): 2010-08-25 14:39:10 PDT <a moz-do-not-send="true"
        class="moz-txt-link-abbreviated"
        href="mailto:vladimir.kozlov@oracle.com">vladimir.kozlov@oracle.com</a><br>
    </blockquote>
    But what in case of java type byte only 8 bits come to usage?<br>
    <br>
    <br>
    Much thanks,<br>
    <br>
    -Ulf<br>
    <br>
  </body>
</html>