mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-09-28 17:11:11 -09:00
Sleigh ARMNeon have an ambiguious pattern
On the Arm Neon sleigh file, the table `vld4Align2` pattern is ambiguous.
The Pattern `TMode=0 & (c1011=1 & c0404=1) | (c1011=2 & c0405=1)`.
Can be interpreted by the parser as: `(TMode=0 & ((c1011=1 & c0404=1)) | (c1011=2 & c0405=1)` or `TMode=0 & ((c1011=1 & c0404=1) | (c1011=2 & c0405=1))`
Similar to the Thumb constructor on line [2432](6fad151b54/Ghidra/Processors/ARM/data/languages/ARMneon.sinc (L2432)), the second interpretation, should be enforced.
This commit is contained in:
@@ -2425,7 +2425,7 @@ vld4DdElement2: Dreg^"["^vld4Index^"]" is Dreg & vld4Index
|
||||
|
||||
vld4Align2: is TMode=0 & c0404=0 & (c1111=0 | c0505=0) { }
|
||||
vld4Align2: "@32" is TMode=0 & c1011=0 & c0404=1 { }
|
||||
vld4Align2: "@64" is TMode=0 & (c1011=1 & c0404=1) | (c1011=2 & c0405=1) { }
|
||||
vld4Align2: "@64" is TMode=0 & ((c1011=1 & c0404=1) | (c1011=2 & c0405=1)) { }
|
||||
vld4Align2: "@128" is TMode=0 & c1011=2 & c0405=2 { }
|
||||
vld4Align2: is TMode=1 & thv_c0404=0 & (thv_c1111=0 | thv_c0505=0) { }
|
||||
vld4Align2: "@32" is TMode=1 & thv_c1011=0 & thv_c0404=1 { }
|
||||
|
||||
Reference in New Issue
Block a user