RESOLVED FIXED248481
Alignment assumed by RegisterAtOffsetList does not accurately describe SIMD registers
https://bugs.webkit.org/show_bug.cgi?id=248481
Summary Alignment assumed by RegisterAtOffsetList does not accurately describe SIMD r...
David Degazio
Reported 2022-11-29 11:08:46 PST
rdar://102515450 The current RegisterAtOffsetList implementation assumes that the alignment of a register's value is the same as the width of that register. However, 128-bit SIMD registers are currently only aligned to eight-byte intervals. This mismatch between RegisterAtOffsetList's size calculation and other locations (such as in RegisterSetBuilder) can cause assertion failure. For example: (module (type (;0;) (func (result i32 v128))) (func (;0;) (type 0) (result i32 v128) (local v128) i32.const 0 v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 ) (export "foo" (func 0)) ) ...results in: ASSERTION FAILED: static_cast<size_t>(offset - startOffset) == sizeOfAreaInBytes
Attachments
David Degazio
Comment 1 2022-11-29 11:32:01 PST
EWS
Comment 2 2022-11-30 12:53:26 PST
Committed 257192@main (f958a5f2b00b): <https://commits.webkit.org/257192@main> Reviewed commits have been landed. Closing PR #6929 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.