Unaligned memory access with JDK

yangfei at iscas.ac.cn yangfei at iscas.ac.cn
Fri Jul 29 13:56:47 UTC 2022


> -----Original Messages-----
> From: "Владимир Кемпик" <vladimir.kempik at gmail.com>
> Sent Time: 2022-07-29 15:24:19 (Friday)
> To: "wangyadong (E)" <yadonn.wang at huawei.com>
> Cc: "Palmer Dabbelt" <palmer at dabbelt.com>, "riscv-port-dev at openjdk.org" <riscv-port-dev at openjdk.org>
> Subject: Re: Unaligned memory access with JDK
> 
> Hello, Should I file a jbs bug then ?
> 
> I have also found misaligned access in stack setup prologue of template interp generated methods.
> for example, the putstatic code:
> 
> 0x3f89d033c0:  ff8a0a13          addi          s4,s4,-8
> 0x3f89d033c4:  00aa3023          sd            a0,0(s4)
> 0x3f89d033c8:  0380006f          j             56                              # 0x3f89d03400
> 0x3f89d033cc:  ff8a0a13          addi          s4,s4,-8
> 0x3f89d033d0:  00aa2027          fsw           fa0,0(s4)
> 0x3f89d033d4:  02c0006f          j             44                              # 0x3f89d03400
> 0x3f89d033d8:  ff0a0a13          addi          s4,s4,-16
> 0x3f89d033dc:  00aa3027          fsd           fa0,0(s4)
> 0x3f89d033e0:  0200006f          j             32                              # 0x3f89d03400
> 0x3f89d033e4:  ff0a0a13          addi          s4,s4,-16
> 0x3f89d033e8:  000a3423          sd            zero,8(s4)
> 0x3f89d033ec:  00aa3023          sd            a0,0(s4)
> 0x3f89d033f0:  0100006f          j             16                              # 0x3f89d03400
> 0x3f89d033f4:  ff8a0a13          addi          s4,s4,-8
> 0x3f89d033f8:  0005053b          addw          a0,a0,zero
> 0x3f89d033fc:  00aa3023          sd            a0,0(s4)
> 0x3f89d03400:  001b5683          lhu           a3,1(s6). <— MISALLIGNED ACCESS
> 0x3f89d03404:  00569613          slli          a2,a3,5
> 0x3f89d03408:  00cd0633          add           a2,s10,a2
> 0x3f89d0340c:  02860493          addi          s1,a2,40
> 0x3f89d03410:  00048493          mv            s1,s1
> 0x3f89d03414:  0ff0000f          fence         iorw,iorw
> 0x3f89d03418:  0004e483          lwu           s1,0(s1)
> 0x3f89d0341c:  0af0000f          fence         ir,iorw

Yes. With the current status of unaligned access described by Palmer, I think we should identify these cases in the port and put them under control of existing JVM option AvoidUnalignedAccesses.

Thanks,
Fei</riscv-port-dev at openjdk.org></palmer at dabbelt.com></yadonn.wang at huawei.com></vladimir.kempik at gmail.com>


More information about the riscv-port-dev mailing list