Closed Bug 915934 Opened 6 years ago Closed 6 years ago

IonMonkey: clean-ups for UInt32ToDouble

Categories

(Core :: JavaScript Engine, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla27

People

(Reporter: bbouvier, Assigned: bbouvier)

Details

Attachments

(1 file)

Per comment 22 in bug 913282,

(In reply to Hannes Verschore [:h4writer] from comment #22)
> 
> (Value &) v could be typed as a double, but still fit into a float. So I
> think we want to fold that too?
> 
> >      _(UInt32ToDouble)               \
> > +    _(UInt32ToFloat32)              \
> 
> Since this is only used in odinmonkey, this should be AsmJSUInt32ToFloat32
> 
> Also I think it's better to create convertUInt32ToFloat32(input, output,
> temp) for the x86 variant. And move input to temp, when the registers aren't
> the same. That way it doesn't clobber input register anymore, unnoticeable.
> 

- fold also constant double Value
- rename UInt32ToDouble into AsmJSUInt32ToDouble
- make the mov of visitUInt32ToDouble happen in convertUInt32ToDouble
Attached patch cleanupsSplinter Review
Changing the convertUInt32ToDouble so that it takes more arguments was slightly more complicated, as there are some calls in IonMacroAssembler with a non trivial path, so I preferred not changing the function.

Also, AsmJS stores uint32 in int32, so there actually can't be a Double value during constant folding.
Attachment #804151 - Flags: review?(hv1989)
Comment on attachment 804151 [details] [diff] [review]
cleanups

Review of attachment 804151 [details] [diff] [review]:
-----------------------------------------------------------------

Thanks!
Attachment #804151 - Flags: review?(hv1989) → review+
https://hg.mozilla.org/mozilla-central/rev/ae623dc4f044
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla27
You need to log in before you can comment on or make changes to this bug.