Bug 183914

Summary: Add placeholder call and jump MacroAssembler emitters that take PtrTag in a register.
Product: WebKit Reporter: Mark Lam <mark.lam>
Component: JavaScriptCoreAssignee: Mark Lam <mark.lam>
Status: RESOLVED FIXED    
Severity: Normal CC: fpizlo, jfbastien, keith_miller, msaboff, rmorisset, saam, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
proposed patch.
none
proposed patch.
none
proposed patch.
none
proposed patch. saam: review+

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?