Andreas Gal
e6cc02f5cc
If we see a f2i(UnboxDouble) chain, simplify it to UnboxInt32 which does the conversion internally. This also enables a fastpath to read 31-bit jsval integers from arrays.
2008-07-27 14:55:26 -07:00
Andreas Gal
43b7ba1be4
Don't use a builtin for this. For functions its interned in the native frame. For global this we read from fp->thisp. Restore jsinterp.cpp and jsinterp.h (no longer need COMPUTE_THIS exposed).
2008-07-16 14:36:50 -07:00
shaver@mozilla.org
3a4c348313
Trace JSOP_THIS and JSOP_THISPROP.
...
Rename getprop to get_prop, just because.
Extract COMPUTE_THIS to jsinterp.h as JS_COMPUTE_THIS for reuse in tracer.
2008-07-15 21:37:00 -04:00
Andreas Gal
1b783425aa
Assign blame where blame is due.
2008-07-15 15:05:16 -07:00
shaver@mozilla.org
0180d69fd8
fix our aliasing idiocy by extending jsdpun, add Math.sqrt, add strict-aliasing to our Makefile.ref flags
2008-07-14 18:22:05 -04:00
shaver@mozilla.org
4779e69591
make JSOP_CALL builtin specialization data-driven
2008-07-14 00:28:31 -04:00
shaver@mozilla.org
fd5ac5b844
add Math.cos and Math.pow to the specialized-call party, and add tests
2008-07-12 00:03:33 -04:00
shaver@mozilla.org
d180a6755d
I will remember that stacked values are not boxed.
...
I will remember that stacked values are not boxed.
I will remember that stacked values are not boxed.
I will remember that stacked values are not boxed.
2008-07-11 23:04:29 -04:00
shaver@mozilla.org
9c69964575
Specialized tracing of Math.sin, as a proof of concept. Doesn't quite work due to regalloc mismatch, but close!
2008-07-11 22:59:09 -04:00
shaver@mozilla.org
5b91021cd9
Windows cares a lot more about where FASTCALL is; such a sensitive platform
2008-07-11 11:40:07 -04:00
shaver@mozilla.org
bf94c0c6b9
fix include ordering for THREADSAFE build
2008-07-10 08:40:43 -04:00
Andreas Gal
d6b834b98a
Move builtin[] table in jsbuiltin.cpp
2008-07-08 23:48:06 -07:00
Andreas Gal
aeeff83beb
Move the type level from int/double to number. All traces start out as double in all slots, and denote and promote to/from int as needed. The FuncFilter optimizes on-trace casting and elininates redundant f->i-> chains. More optimization needed on this of course, and this code is now a bit slower than the previous integer-register use. However, this does solve the q += 2.5 issues. The heap access code does not properly cast yet and is likely unstable.
2008-07-06 15:55:04 -07:00
Andreas Gal
84ec537a0c
Merge.
2008-07-06 11:19:06 -07:00
Andreas Gal
9501bcd749
Added doubleToUint32 builtin and make tracker a template.
2008-07-06 10:59:55 -07:00
shaver@mozilla.org
d881a494aa
fix builtin_UnboxInt32 signature and name shape_ins for debugging
2008-07-06 13:58:59 -04:00
Andreas Gal
100f4ea5e0
Added support for semi-stable loop variables. Compiling for(...) q += 2.5; is ridiculously difficult because it flip-flops between int and double. Add support to promote integer values to doubles at the loop tail if at loop entry we expect a double. Since this isn't possible the other way around, we have to get luck that we catch a path into the loop where q is already double. For this we add 3 trigger points (10, 13, 37). We will try three times to record a trace at those iteration counts of a loop. If none succeed the loop is blacklisted. This probably needs more tuning down the road.
2008-07-05 23:21:53 -07:00
Andreas Gal
0b28897ad3
Add helpers for i->f and f->i conversion. The f->i path goes via builtin calls.
2008-07-05 22:04:58 -07:00
Andreas Gal
3ba61e4c01
Added missing jsbuiltins.cpp
2008-07-05 17:29:55 -07:00