Summary: | s390_emit_load_mem panics due to 20-bit offset for vector load | ||
---|---|---|---|
Product: | [Developer tools] valgrind | Reporter: | Andreas Arnez <arnez> |
Component: | vex | Assignee: | Julian Seward <jseward> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | NOR | ||
Version First Reported In: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | Force 12-bit amode for vector loads |
Description
Andreas Arnez
2020-11-03 15:32:47 UTC
Further analysis shows that the offending "load" originates from s390_isel_vec_expr_wrk() while processing an Iex_Load. This function generates the addressing mode with s390_isel_amode() and doesn't ensure that the offset stays within 12 bits. Changing the invocation to s390_isel_amode_short() fixes the problem. Note that this is similar to Bug 417452, where the same issue appeared with "store" instead of "load". Created attachment 132997 [details]
Force 12-bit amode for vector loads
This should fix the issue.
Since this is a fairly straightforward (and small) change, I just pushed this as git commit ba73f8d2ebe4b5fe8163ee5ab806f0e50961ebdf. |