Bug 183914 - Add placeholder call and jump MacroAssembler emitters that take PtrTag in a register.
Summary: Add placeholder call and jump MacroAssembler emitters that take PtrTag in a r...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Mark Lam
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2018-03-22 13:05 PDT by Mark Lam
Modified: 2018-04-13 13:40 PDT (History)
7 users (show)

See Also:


Attachments
proposed patch. (10.12 KB, patch)
2018-03-22 13:09 PDT, Mark Lam
no flags Details | Formatted Diff | Diff
proposed patch. (10.12 KB, patch)
2018-03-22 13:21 PDT, Mark Lam
no flags Details | Formatted Diff | Diff
proposed patch. (9.93 KB, patch)
2018-03-22 13:26 PDT, Mark Lam
no flags Details | Formatted Diff | Diff
proposed patch. (9.91 KB, patch)
2018-03-22 13:29 PDT, Mark Lam
saam: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Mark Lam 2018-03-22 13:05:25 PDT
This is in preparation for supporting pointer profiling work.
Comment 1 Radar WebKit Bug Importer 2018-03-22 13:06:28 PDT
<rdar://problem/38763536>
Comment 2 Mark Lam 2018-03-22 13:09:47 PDT
Created attachment 336299 [details]
proposed patch.
Comment 3 Mark Lam 2018-03-22 13:21:45 PDT
Created attachment 336302 [details]
proposed patch.
Comment 4 Mark Lam 2018-03-22 13:26:43 PDT
Created attachment 336303 [details]
proposed patch.
Comment 5 Mark Lam 2018-03-22 13:29:51 PDT
Created attachment 336305 [details]
proposed patch.
Comment 6 Mark Lam 2018-03-22 14:24:46 PDT
Thanks for the review.  Landed in r229863: <http://trac.webkit.org/r229863>.
Comment 7 Filip Pizlo 2018-04-13 13:40:08 PDT
Comment on attachment 336305 [details]
proposed patch.

This change is pretty crazy.  First of all, the intended use of call tags is that they should be constants, so having them be passed in register by default is revealing a weird ARMism - in all other places, constants are passed to the assembler as constants, not as registers.  Second, it means that call(register) now means something completely different than what anyone would expect it to mean: it means a patchable call and the register is ignored!

Is it possible to roll this out?