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