Commit Graph

292 Commits

Author SHA1 Message Date
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