| 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/Implemented 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. |