Sean Stangl
f6ffd74069
[JAEGER] Clean up jsop_neg(). (575192, r=dvander)
2010-06-28 01:14:48 -07:00
Sean Stangl
c196c4cb42
[JAEGER] Implement fast-paths for integer, double division.
2010-06-27 18:35:44 -07:00
Sean Stangl
2cab35aba7
[JAEGER] Implement double (inline) + int (ool) fast-paths for JSOP_NEG.
...
The results of this patch are currently dubious:
3d-morph gets significant improvement (1.22x), but most other tests
are slowed. In total, there is a 2ms improvement locally for SunSpider.
However, jsop_neg() is much simpler code than jsop_binary(),
so it is useful to exist during the FrameState tweaking.
Comments have been left to be helpful during this process.
2010-06-26 06:50:21 -07:00
Sean Stangl
3eb7920074
[JAEGER] Implement int+double arithmetic fast-paths.
2010-06-25 18:23:35 -07:00
Sean Stangl
5c22a54a9e
[JAEGER] Update StubCompiler, FrameState, and Compiler for double arithmetic paths.
2010-06-25 18:21:36 -07:00
David Anderson
714f19d3e3
[JAEGER] Peephole optimize stores away for localinc.
2010-06-25 16:45:21 -07:00
David Anderson
fe3c83d266
[JAEGER] Kill redundant stores of type tags to synced memory on fast-paths.
2010-06-25 11:42:47 -07:00
David Anderson
d3b42d0841
[JAEGER] Fixed memory bug in call path.
2010-06-24 16:32:15 -07:00
David Anderson
330812bfd3
[JAEGER] Removed debug profiling.
2010-06-24 16:21:45 -07:00
David Anderson
cc3ce07f82
[JAEGER] More fast-paths for NOT.
2010-06-24 15:28:30 -07:00
David Anderson
0a0f76d454
[JAEGER] Update JM2 for fatval merge.
2010-06-24 14:17:08 -07:00
David Anderson
ab63b0c9ce
[JAEGER] Use PICs for PROPINC and friends.
2010-06-23 23:40:38 -07:00
David Anderson
a7b1a1cae4
[JAEGER] Completely inline JSOP_INSTANCEOF.
2010-06-23 23:18:54 -07:00
David Mandelin
882030f513
Add extra stack space needed for callprop in methodjit
2010-06-23 18:58:17 -07:00
David Mandelin
33c408ba97
Fix PIC for MSVC. enums are apparently signed in MSVC, which caused 'overflow' in the 2-bit kind field
2010-06-23 18:06:51 -07:00
David Anderson
a17cb9cbbe
[JAEGER] CALLPROP PIC for primitive string methods.
2010-06-23 17:10:58 -07:00
David Anderson
82ba121204
[JAEGER] Ported Dave Mandelin's PIC for CALLPROP, objects only (bug 572310).
2010-06-23 16:18:48 -07:00
David Anderson
2669c5fe3a
[JAEGER] Turned off accidental debug flag.
2010-06-23 13:51:20 -07:00
David Anderson
992d8e6cde
[JAEGER] Fixed build.
2010-06-23 10:50:34 -07:00
David Anderson
ff64349d0b
[JAEGER] Use PIC for callprop when compile-and-go and LHS is a primitive string.
2010-06-22 23:22:46 -07:00
David Anderson
b3c8e672cf
[JAEGER] Merge.
2010-06-22 23:21:23 -07:00
David Anderson
481fa06044
Backed out changeset 99ce8bcb547c
2010-06-22 23:21:09 -07:00
David Anderson
264aaca0a9
[JAEGER] Infer that an addition with a string will result in a string.
2010-06-22 23:18:53 -07:00
David Anderson
b56e39093f
imported patch callpropic_str
2010-06-22 22:55:31 -07:00
Chris Leary
0aca3bfb30
JSOP_ENDINIT fast path, obsoletes stub call. (r=dvander)
2010-06-22 22:40:55 -07:00
Andrew Drake
30a3cc58b6
[JAEGER] Fix build on pedantic compilers, fix win32 shell. r=dvander
2010-06-22 19:11:50 -07:00
David Anderson
79bd5716a1
[JAEGER] Use GETPROP PIC for calls when the LHS is known to be an object.
2010-06-22 17:54:05 -07:00
David Anderson
82f5e8e60e
[JAEGER] Fix GETPROP bug with dense arrays.
2010-06-22 16:53:35 -07:00
David Anderson
4e21a7e40e
[JAEGER] Use PIC for instanceof's obj.prototype fetch.
2010-06-22 16:21:21 -07:00
David Anderson
408c243f13
[JAEGER] Fixed nits from branding fix.
2010-06-22 15:09:07 -07:00
David Anderson
f4a612c01c
[JAEGER] Cache atom in PIC directly, instead of index, for simplicity.
2010-06-22 15:07:10 -07:00
David Anderson
7965d753a3
[JAEGER] Tighten method barrier test in SETPROP pic.
2010-06-22 14:50:22 -07:00
David Anderson
d31caee286
[JAEGER] Fixed SETPROP PIC not maintaining branding invariants.
2010-06-22 14:45:16 -07:00
David Anderson
56bdd8b4f7
[JAEGER] Allow patching of the inline path after generating stubs.
2010-06-22 13:32:55 -07:00
David Anderson
a6a668c9d3
[JAEGER] Enabled SETPROP PIC, slow path now takes property cache.
2010-06-21 19:41:29 -07:00
David Anderson
39aff71e4a
[JAEGER] Precursor work for Dave Mandelin's SETPROP IC (bug 572310).
2010-06-21 19:34:20 -07:00
David Anderson
e7cd0a7538
[JAEGER] Precursor SETPROP IC work - shimmy top of stack down.
2010-06-21 19:34:18 -07:00
David Anderson
178ac0c976
[JAEGER] Fixed build.
2010-06-20 16:16:51 -07:00
David Anderson
68eadd08f9
[JAEGER] Re-added Dave Mandelin's GETPROP PIC stubs for string and array length (bug 572310, part 2).
2010-06-20 16:07:21 -07:00
David Anderson
a1983f037c
[JAEGER] Use cheaper comparison for GETPROP type checks.
2010-06-20 13:17:45 -07:00
David Anderson
884b494c29
[JAEGER] Re-added Dave Mandelin's polymorphic inline caches for GETPROP (bug 572310).
2010-06-19 21:58:55 -07:00
David Anderson
ff9eadf410
[JAEGER] Fast path for EQ,NE when one side is constant null or undefined.
2010-06-18 13:55:08 -07:00
David Anderson
4d054d48ba
[JAEGER] Don't optimize escaping variables (bug 566022).
2010-06-18 11:07:15 -07:00
Sean Stangl
1c4a45fe74
[JAEGER] Change JSFrameReg to static const on advice from Luke.
2010-06-18 00:44:17 -07:00
David Anderson
cbe631e38a
[JAEGER] Fixed regression in light frames.
2010-06-17 20:33:16 -07:00
David Anderson
d0cfbb0fad
[JAEGER] Fixed bug in JSOP_UNBRANDTHIS.
2010-06-17 20:30:19 -07:00
David Anderson
8142533567
[JAEGER] Added JSOP_UNBRAND,UNBRANDTHIS.
2010-06-17 20:27:22 -07:00
David Anderson
fb49319458
[JAEGER] Lower var init and call obj creation into script prologue.
2010-06-17 18:36:30 -07:00
David Anderson
d5d0ad5d93
[JAEGER] Guard that calls have compiled code.
2010-06-17 18:36:28 -07:00
David Anderson
993e3687a3
[JAEGER] Disabled accidental debug instrumentation.
2010-06-17 01:15:36 -07:00
David Anderson
c1bfa098ce
[JAEGER] Added fast-paths for STRICTEQ.NE and boolean literals.
2010-06-17 01:05:50 -07:00
David Anderson
8aba3afc06
[JAEGER] Fast-paths for STRICTEQ,NE when undefined or null are used.
2010-06-17 00:29:28 -07:00
David Anderson
335d797ee4
[JAEGER] Add fast-path for JSOP_THIS.
2010-06-16 18:15:23 -07:00
David Anderson
7ab3717436
[JAEGER] Added stub call profiling.
2010-06-16 17:53:35 -07:00
Sean Stangl
e38df23094
[JAEGER] Merge.
2010-06-16 15:33:21 -07:00
Sean Stangl
ce760eead5
[JAEGER] Define temporary FPRegisters.
...
Defines FPRegisters::First and FPRegisters::Second,
temporary FPRegisters that are always synced to memory.
This will hopefully eventually be obsoleted by having
a FPRegister allocator, once FrameState changes are done.
2010-06-16 15:32:30 -07:00
David Anderson
863fc7bfde
[JAEGER] Split JSOP_CALL into more decisions, removed primitive-this check on returns.
2010-06-16 15:21:39 -07:00
David Anderson
9e532246ad
[JAEGER] Merge.
2010-06-16 01:16:17 -07:00
David Anderson
bc20a29586
[JAEGER] Inline scripted returns.
2010-06-16 01:16:07 -07:00
Sean Stangl
fb862c18e6
[JAEGER] Rename some functions to make namespace for FPRegisters; (572202, r=dvander).
2010-06-15 18:24:31 -07:00
Sean Stangl
a6ef9f95cc
[JAEGER] Implement integer fast path for multiplication; (572081, r=dvander).
...
ARM multiplication always uses the slow path for now.
2010-06-15 10:46:01 -07:00
David Anderson
a552b1c8e7
[JAEGER] Added fast-path for JSOP_GETELEM.
2010-06-15 03:46:44 -07:00
Sean Stangl
3ad293a3f4
[JAEGER] Fast paths for integer addition, subtraction; (572081, r=dvander).
2010-06-15 03:16:30 -07:00
Sean Stangl
9e77669f47
[JAEGER] testDouble() should emit an unsigned comparison.
2010-06-15 02:46:56 -07:00
Sean Stangl
00de27cae9
[JAEGER] Fix BITOR, BITXOR.
2010-06-15 02:42:08 -07:00
David Anderson
003df04dec
[JAEGER] Rewrite state reification for side exits.
2010-06-15 01:40:39 -07:00
David Anderson
a0047931d5
[JAEGER] Added fast-path for JSOP_SETELEM.
2010-06-15 01:40:36 -07:00
David Anderson
e260a83f6c
[JAEGER] Fixed build.
2010-06-14 13:44:06 -07:00
David Anderson
750be487c8
[JAEGER] Merge.
2010-06-14 13:36:20 -07:00
David Anderson
bc2301898a
[JAEGER] Merge.
2010-06-14 13:36:05 -07:00
David Anderson
6ce58480af
[JAEGER] Added monomorphic inline caches for SETGNAME.
2010-06-14 13:35:47 -07:00
Sean Stangl
22449ee4d8
[JAEGER] Fix backwards comparison on masm.testDouble().
2010-06-14 12:56:19 -07:00
David Anderson
56a7c58d38
[JAEGER] Merge.
2010-06-12 19:16:33 -07:00
Sean Stangl
2f941c5f22
[JAEGER] Rename FpReg to JSFrameReg; r=dvander.
2010-06-12 19:11:00 -07:00
David Anderson
297eb1af31
[JAEGER] Added monomorphic inline cache for reads of unbound globals.
2010-06-12 19:00:30 -07:00
David Anderson
82d98ad449
[JAEGER] Predict unbound names as being on the global object (bug 564949).
2010-06-12 19:00:27 -07:00
Sean Stangl
b616a53aee
[JAEGER] Define FPRegisters struct; r=dvander.
2010-06-12 18:37:34 -07:00
Sean Stangl
2a5a91c2c0
[JAEGER] Rename alloc() to allocReg(); r=dvander.
...
This patch is in preparation for making a distinction between
registers and floating-point registers for double fastpaths.
2010-06-12 18:26:36 -07:00
Sean Stangl
8ff57facfa
[JAEGER] Use frame.testInt32() instead of masm.testInt32(); r=dvander.
2010-06-11 22:07:10 -07:00
Sean Stangl
1662a83587
[JAEGER] Implement testDouble(); r=dvander.
2010-06-11 21:27:56 -07:00
Sean Stangl
3751e1ceaf
[JAEGER] Permit FrameState::copyData() with copied FrameEntries; r=dvander.
2010-06-11 21:27:52 -07:00
David Anderson
7b6d3db650
[JAEGER] Merge.
2010-06-11 14:11:04 -07:00
David Anderson
b79115e765
[JAEGER] Optimize how atoms are passed to NAME, CALLNAME, and SETNAME.
2010-06-11 14:10:43 -07:00
Andrew Drake
a25e9507f4
[JAEGER] Fix Win32 build. r=dvander
2010-06-11 11:24:39 -07:00
David Anderson
3bbb12b82b
[JAEGER] Added JSOP_ELEMINC,ELEMDEC,INCELEM,DECELEM.
2010-06-10 23:10:15 -07:00
David Anderson
f6b0dbf8c8
[JAEGER] Fix build.
2010-06-10 22:20:30 -07:00
David Anderson
20b5f6469a
[JAEGER] Added JSOP_LOCALINC,LOCALDEC,INCLOCAL,DECLOCAL.
2010-06-10 20:08:17 -07:00
David Anderson
df8cd25dd9
[JAEGER] Implemented re-loads of copies while syncing in slow paths.
2010-06-10 19:17:09 -07:00
David Anderson
ee80a9426c
[JAEGER] Added JSOP_SETRVAL, JSOP_RETRVAL.
2010-06-10 17:30:00 -07:00
David Anderson
aa81593c46
[JAEGER] Try to find unsynced registers to perform copies in side exits.
2010-06-10 17:29:58 -07:00
David Anderson
91a1779e5c
[JAEGER] Added JSOP_ARGINC,ARGDEC,INCARG,DECARG.
2010-06-10 17:29:57 -07:00
Sean Stangl
77d79f4a31
[JAEGER] Fix handling copied FrameEntries; r=dvander.
2010-06-10 16:56:58 -07:00
David Anderson
858278d975
[JAEGER] Merge from fatval branch.
2010-06-10 14:01:11 -07:00
David Anderson
48bdd8875c
[JAEGER] Added JSOP_TABLESWITCH.
2010-06-10 13:37:37 -07:00
David Anderson
f05461c221
[JAEGER] Added JSOP_LOOKUPSWITCH.
2010-06-10 13:24:19 -07:00
David Anderson
ba5aa9dd19
[JAEGER] Make syncFancy() resume properly.
2010-06-09 22:33:54 -07:00
David Anderson
be3dcd19fc
[JAEGER] Improve register allocation when merge-syncing copies.
2010-06-09 22:28:12 -07:00
David Anderson
4e28dc4af8
[JAEGER] Fixed bug in JSOP_BINDNAME.
2010-06-09 13:55:32 -07:00
David Anderson
b62bed481e
[JAEGER] New JSOP_CALLPROP.
2010-06-09 12:55:41 -07:00
David Anderson
43b26ccbf8
[JAEGER] Tiny fix-ups.
2010-06-09 01:46:07 -07:00