Set native method invocation pointers at resolve time instead of verify time

NEW
Unassigned

Status

Tamarin
Virtual Machine
P2
normal
8 years ago
6 years ago

People

(Reporter: Edwin Smith, Unassigned)

Tracking

(Blocks: 3 bugs)

unspecified
Q3 12 - Dolores
Dependency tree / graph
Bug Flags:
flashplayer-qrb +
flashplayer-bug -

Details

(Whiteboard: has-patch)

Attachments

(1 attachment)

(Reporter)

Description

8 years ago
The first branch in verify() handles native methods by setting up their invocation pointers.  That's all that has to be done, and the only information needed is for resolveSignatures to have already been called.

avantages:
- cleans this cruft out of the verify method, which is too big already.
- any early bound method has already been resolved.  if we early bind to a final native method (e.g. Math functions), then we will have their final invocation address and can call the code directly; no indirect call required.

risks:
- can we guarantee f.resolveSignatures will have been called before the first function call?  if not, we still need a trampoline.  Note: it's *not* okay to cause resolveSignatures to be called earlier than before, to establish this guarantee.
(Reporter)

Updated

8 years ago
Blocks: 557926
(Reporter)

Updated

8 years ago
Depends on: 563119

Updated

8 years ago
Flags: flashplayer-qrb+
Priority: -- → P2
Target Milestone: --- → flash10.2
(Reporter)

Comment 1

8 years ago
Created attachment 464152 [details] [diff] [review]
Install native thunk pointers at method resolve time instead of verify time

Snapshot work in progress form April.  needs rebasing, probably easiest to do visually from the diff rather than an actual merge.
Assignee: nobody → edwsmith
(Reporter)

Comment 2

8 years ago
Note: this probably is a *very* marginal improvement to startup time, but adding the dependency is useful for keeping track of the bug, since many the other bugs dealing with thunks and invocation stubs are also tracked by bug 511873.
Blocks: 511873
(Reporter)

Updated

7 years ago
Blocks: 583955
(Reporter)

Comment 3

7 years ago
I am making this block OSR because it moves native-method issues out of the verify trampolines.  OSR adds complexity to trampoline management so landing this bug first will help tame the complexity of introducing OSR.
Blocks: 539094
(Reporter)

Comment 4

7 years ago
I'm un-blocking OSR again because at this point we need less things blocking OSR, not more.
No longer blocks: 539094

Updated

7 years ago
Flags: flashplayer-bug-
Whiteboard: has-patch

Updated

7 years ago
Whiteboard: has-patch → has-patch, must-fix-candidate

Updated

7 years ago
Target Milestone: Q3 11 - Serrano → Q1 12 - Brannan

Updated

6 years ago
Target Milestone: Q1 12 - Brannan → Q2 12 - Cyril

Updated

6 years ago
Whiteboard: has-patch, must-fix-candidate → has-patch
(Reporter)

Updated

6 years ago
Assignee: edwsmith → nobody
Target Milestone: Q2 12 - Cyril → Q3 12 - Dolores
You need to log in before you can comment on or make changes to this bug.