Bug 37862 - Use BLX and BX to keep happy the return stack predictor above ARMv4
Summary: Use BLX and BX to keep happy the return stack predictor above ARMv4
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Other Other
: P2 Enhancement
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-04-20 08:31 PDT by Gabor Loki
Modified: 2010-04-22 06:25 PDT (History)
2 users (show)

See Also:


Attachments
Use BLX and BX to keep happy the return stack predictor above ARMv4 (10.44 KB, patch)
2010-04-20 08:32 PDT, Gabor Loki
no flags Details | Formatted Diff | Diff
The results on ARMv7 (6.44 KB, text/plain)
2010-04-20 08:35 PDT, Gabor Loki
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Gabor Loki 2010-04-20 08:31:25 PDT
The following kind of instruction sequences break the return stack predictor:
MOV LR, PC
MOV PC, Rx

We should avoid it above v4. The BLX instruction should be used for predicted calls on ARMv5 and above.

The patch gives 2% performance progression.
Comment 1 Gabor Loki 2010-04-20 08:32:44 PDT
Created attachment 53824 [details]
Use BLX and BX to keep happy the return stack predictor above ARMv4
Comment 2 Gabor Loki 2010-04-20 08:35:07 PDT
Created attachment 53826 [details]
The results on ARMv7
Comment 3 WebKit Commit Bot 2010-04-22 06:25:05 PDT
Comment on attachment 53824 [details]
Use BLX and BX to keep happy the return stack predictor above ARMv4

Clearing flags on attachment: 53824

Committed r58091: <http://trac.webkit.org/changeset/58091>
Comment 4 WebKit Commit Bot 2010-04-22 06:25:09 PDT
All reviewed patches have been landed.  Closing bug.