Bug 158349

Summary: ARMv7 vstm and vldm instructions can only operate on a maximum of 16 registers.
Product: WebKit Reporter: Mark Lam <mark.lam>
Component: JavaScriptCoreAssignee: Mark Lam <mark.lam>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, keith_miller, msaboff, saam
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
proposed patch. fpizlo: review+

Description Mark Lam 2016-06-03 11:02:17 PDT
According to the ARM Assembler Reference, the vstm and vldm instructions can only operate on a maximum of 16 registers.  See http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dht0002a/ch01s03s02.html and http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dht0002a/ch01s03s02.html.

The ARMv7 probe code was wrongly using these instructions to store and load all 32 'd' registers.
Comment 1 Mark Lam 2016-06-03 11:35:36 PDT
Created attachment 280448 [details]
proposed patch.
Comment 2 Mark Lam 2016-06-03 11:41:28 PDT
Thanks for the review.  Landed in r201651: <http://trac.webkit.org/r201651>.