nanojit: rejig asm_call()

RESOLVED FIXED

Status

()

Core
JavaScript Engine
RESOLVED FIXED
9 years ago
9 years ago

People

(Reporter: njn, Assigned: njn)

Tracking

Trunk
x86
Linux
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: fixed-in-nanojit, fixed-in-tracemonkey)

Attachments

(1 attachment)

(Assignee)

Description

9 years ago
Created attachment 414804 [details] [diff] [review]
patch

For calls, the division of labour between Assembler.cpp and the backends is
quite awkward.  Eg. asm_prep_fcall() is the same in all backends except for
ARM, in which it does nothing and a huge comment is required to explain why.

This patch moves all the call-handling labour into the back-ends, ie.
entirely within asm_call().  asm_prep_fcall() is no longer necessary.  Even
with five backends it's the same number of lines of code, and the ARM case
is less confusing (although it's still confusing, and it's possible the flow
could be cleaned up, along with the big comment).

This will also help with bug 513615 and bug 516347.
Attachment #414804 - Flags: review?(edwsmith)

Updated

9 years ago
Attachment #414804 - Flags: review?(edwsmith) → review+
(Assignee)

Comment 2

9 years ago
http://hg.mozilla.org/tracemonkey/rev/438aebc2ec90
Whiteboard: fixed-in-nanojit → fixed-in-nanojit, fixed-in-tracemonkey

Comment 3

9 years ago
http://hg.mozilla.org/mozilla-central/rev/438aebc2ec90
Status: ASSIGNED → RESOLVED
Last Resolved: 9 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.