Commit Graph

1718 Commits

Author SHA1 Message Date
Andreas Gal
8dee65f176 Merged with Brendan's changes. 2008-06-10 22:30:46 -07:00
Andreas Gal
c79c0bfeef Added code to switch to the tracer and back. Incomplete and for review only. 2008-06-10 22:20:05 -07:00
Brendan Eich
f8e68441c2 No need for eval call. 2008-06-10 21:46:03 -07:00
Brendan Eich
45358518de Minimize JSInterpreterState, fix warning. 2008-06-10 21:40:47 -07:00
Brendan Eich
57eff0cc24 Style nits, plus no need for rt in JSInterpreterState. 2008-06-10 19:40:09 -07:00
Andreas Gal
b5238a9929 Create a side-entry path into the interpreter that bypasses the initialization code and allows switching back and forth between two interpreters (i.e. tracing and non-tracing). 2008-06-10 17:45:38 -07:00
Andreas Gal
17d0d41459 Added branch monitoring using a single unified branch frequency counter. 2008-06-10 16:49:05 -07:00
Andreas Gal
a1bf0819b2 Removed JSOP_HEADER code. Its too costly. This patch restore essentially the same performance as unmodified SM. 2008-06-10 14:44:51 -07:00
Andreas Gal
aa4de72f2b Disable JSOP_HEADER counting. 2008-06-10 14:17:05 -07:00
Andreas Gal
5f7b163827 Use higher optimization settings for jsinterp.cpp to ensure inlining. 2008-06-10 13:59:43 -07:00
Andreas Gal
b54446d182 Fixed typo that caused sunspider to fail. 2008-06-09 18:30:08 -07:00
Andreas Gal
82d514b492 Merge. 2008-06-09 14:48:23 -07:00
Andreas Gal
0077c6a422 Backed out value_to_iter inline method extraction. 2008-06-09 14:47:14 -07:00
Andreas Gal
76e4f25384 Merge. 2008-06-09 14:46:26 -07:00
Andreas Gal
70e23d6dc1 Backed out do_dorinloop inline method extraction. 2008-06-09 14:45:32 -07:00
Brendan Eich
a6b3eeb630 Merge. 2008-06-08 17:05:46 -07:00
Brendan Eich
ff8942e9cf Fix firefox, etc., (top-level mozilla) builds. 2008-06-06 15:12:48 -07:00
Andreas Gal
fd852a83dd Transform do_dorinloop goto/fall through hack into a proper inline method. 2008-06-06 15:11:08 -07:00
Andreas Gal
8d20524c9b Convert value_to_iter goto/fall through hack into a proper inlined method. 2008-06-06 13:32:04 -07:00
Brendan Eich
04b1ac5592 Merge. 2008-06-04 00:09:57 -07:00
Brendan Eich
894dd03e2a First stage of loop table work; bitmap free space management and GC hook-up still to come. 2008-06-03 23:52:28 -07:00
Brendan Eich
2e6db5a253 Fix decompiler (hack, really) to cope with misplaced JSOP_HEADER in update part of for(;;) loop. 2008-06-03 23:50:22 -07:00
Andreas Gal
9684e2070f Introduced a JavaScript recording script that is loaded dynamically. 2008-06-03 21:01:23 -07:00
Andreas Gal
be39054e45 Store the recorder script in JSTraceMonitor and make sure its traced by the GC. Also clean up the tracing of JSTraceMonitor. 2008-06-03 17:35:30 -07:00
Andreas Gal
02b2fde780 Backed out previous attempt to find a place to stash the recorder script. 2008-06-03 17:27:31 -07:00
Andreas Gal
bfecd01b75 Backed out changeset 3029f4d57bd2 2008-06-03 17:24:02 -07:00
Andreas Gal
3094b79c6b Switch to a uniform style for jstracer.cpp. 2008-06-03 17:15:58 -07:00
Andreas Gal
c93d0c8e08 Add location in the context where we can hold the recorder script and make sure the GC traces it. 2008-06-03 17:14:54 -07:00
Andreas Gal
8b6c4d02c6 Remove InitTacer. Pointless for JSRuntime. 2008-06-03 17:04:42 -07:00
Brendan Eich
a0363085ef Merge, simplify names, and police style. 2008-06-03 16:21:31 -07:00
Brendan Eich
9c2b039d6f JSOP_HEADER takes a byte index of loop header counting from script->loopBase, and related changes. 2008-06-03 14:48:47 -07:00
Brendan Eich
44ed0935e5 Fix ReconstructPCStack oplen code, extend js_OpLength to avoid cs recalculation where possible. 2008-06-03 13:51:30 -07:00
Andreas Gal
d78d723aeb Compiler fixes for CAS patch. 2008-06-03 13:29:10 -07:00
Andreas Gal
3bc4b753d4 Merge. 2008-06-03 13:22:04 -07:00
Brendan Eich
b2ee0f4849 Fix so it compiles, also avoid else after return. 2008-06-03 12:37:20 -07:00
Andreas Gal
70cdf27b42 Make js_CompareAndSwap visible outside jslock.cpp. 2008-06-03 10:06:28 -07:00
Andreas Gal
53060c32ce Move all inlines that do not represent primitives out of jsinterpinlines.h since we don't have to overwrite them in jstracerinlines.h. They live in jsinterp.cpp now. Added missing error handling for prim_ddiv and prim_dmod. Make sure prim_ddiv and prim_dmod do not call other primitives. Fixed bug in dmod (-1 should be n, but since all invocations had n=-1 this was a non-issue). 2008-06-02 23:26:17 -07:00
Brendan Eich
946fa41d8c Fiddle loop table slot interface and impl in hope of freeing slots over time. 2008-06-02 18:06:33 -07:00
Brendan Eich
21c493d829 Use correct idempotent include guard macro name. 2008-06-02 18:05:18 -07:00
Brendan Eich
3db9424289 Merge and undo js_AllocateLoopTableSlot reparam. 2008-06-02 17:28:39 -07:00
Brendan Eich
01514c4b16 No JS_TRACER ifdefs, keep line len < 80, reparameterize jstracer.cpp functions, js_OpLength helper. 2008-06-02 17:19:41 -07:00
Brendan Eich
ea827846a5 Avoid overlong lines per modeline comments. 2008-06-02 17:16:14 -07:00
Andreas Gal
d528552bca Assign fresh loop table slots for all JSOP_HEADER opcodes in a script as it is thawed since the slots we stored there are likely stale by now. 2008-05-31 18:12:39 -07:00
Brendan Eich
5b116ae998 Merge, style nits, no locking for tracing. 2008-05-31 15:29:54 -07:00
Brendan Eich
ef8a767739 Left brace style. 2008-05-31 10:17:40 -07:00
Andreas Gal
e66383e26e Fixed a bug that triggered the tracer at TRACE_THRESHOLD/2 already. 2008-05-31 09:53:16 -07:00
Andreas Gal
e461a72736 The table is now per-thread in a multi-threaded environment, and per-runtime otherwise. During code generation we merely allocate a loop table slot to each loop. Each thread will enlarge the table as needed in JSOP_HEADER. 2008-05-30 18:58:43 -07:00
Andreas Gal
de3107d2ee Add a per-runtime loop attribute table that associates a jsval attribute with every loop in the code. The jsval is used initially as a counter until a certain threshold is reached, at which point the loop is traced and compiled and the resulting native code object is stored in the jsval to be executed for future encounters of the loop. 2008-05-30 10:11:56 -07:00
Andreas Gal
a6ded872bf Steer macro naming in jsinterinlines.h using a macro. This allows us to prefix all primitives with some prefix (i.e. interp_) when we compile the tracer and replace them with new primitives that invoke the interpreter version first, and then do some tracer specific action. 2008-05-29 17:14:42 -07:00
Brendan Eich
7cdb540c44 Fix goof in switching from word to jsval counters. 2008-05-28 23:12:45 -07:00
Brendan Eich
ed4274e179 Instrument loop headers with jsvals above fp->vars and below fp->spbase. 2008-05-28 19:07:32 -07:00
Brendan Eich
8bfb8bfef7 Split trace-supporting inlines, add ifdefs/macros for deriving js_TracingInterpret in jstracer.cpp. 2008-05-28 19:07:25 -07:00
Brendan Eich
968021cff9 Style (and substance for vim users: left brace opening in column 1 enables [[ navigation). 2008-05-28 19:07:16 -07:00
Andreas Gal
f4d6e71bf6 Make relational operations (<,<=,>,>=) traceable. 2008-05-27 10:45:58 -07:00
Andreas Gal
8a5d86fa50 Mark getting and setting arguments and local variables as safe for tracing. 2008-05-26 23:40:52 -07:00
Andreas Gal
e0a5de51b2 Make branch instructions traceable using a new primitive guard_boolean_is_true. 2008-05-26 23:33:23 -07:00
Andreas Gal
32908d0e2f Enable tracing for selected opcodes that do not have any remaining tracing hazards. 2008-05-26 20:04:58 -07:00
Andreas Gal
33ec9a35fb Opcodes that can be traced through can be declared with TRACE_CASE(op). Currently all opcodes are declared as BEGIN_CASE(op), which automatically aborts trace recording. In addition, error handlers (defined with DEFINE_HANDLER) also abort trace recording. At every backwards branch trigger monitor_branch(), which will monitor for new trace tree anchors. 2008-05-26 18:55:16 -07:00
Andreas Gal
288e988b40 Introduce primitives for common binary operations. 2008-05-26 17:29:28 -07:00
Andreas Gal
6d10603538 Convert macro code in jsinterp.cpp into inline functions and introduce trace primitives (prim_*, guard_*, call_*). 2008-05-26 15:27:13 -07:00
Brendan Eich
b065dd2fce From Igor's patch for bug 433382. 2008-05-24 11:39:18 -07:00
Brendan Eich
c611e90657 Fix bad merge. 2008-05-24 10:17:15 -07:00
Brendan Eich
5e03c06ce3 Igor's patch for bug 433382, r=me. 2008-05-23 23:44:08 -07:00
Brendan Eich
2595b54a6b Fix POP_STACK to take a macro out param. 2008-05-23 22:18:36 -07:00
Brendan Eich
602bcd5f50 First round of macro cleanups to enable tracing. 2008-05-23 19:24:10 -07:00
Brendan Eich
2f95757906 Igor's fix for bug 432881, r=me. 2008-05-23 19:14:05 -07:00
Brendan Eich
c0c9201c0a Fix for bug 433672, r=igor. 2008-05-23 19:08:44 -07:00
bcrowder@mozilla.com
ccdd027d08 Bug 433964 - dtrace build fixes for C++ linkage, r=jorendorff 2008-05-19 12:59:09 -07:00
jorendorff@mozilla.com
f2cbe9af26 Merge 8 changesets from cvs-trunk-mirror to mozilla-central. Use (hg log -r b60aee4a61a6:e70e05d8eda2) to see them. 2008-05-16 11:55:05 -05:00
bclary@bclary.com
b017a73ad2 JavaScript Tests - update test and remove from exclusion list, bug 433698, r=jorendorff 2008-05-14 16:18:47 -07:00
jorendorff@mozilla.com
9b5032bfde Merge from cvs-trunk-mirror to mozilla-central. 2008-05-13 09:57:11 -05:00
bclary@bclary.com
abd3a90982 JavaScript Tests - add unary - tests for bug 432881 2008-05-09 20:33:48 -07:00
reed@reedloden.com
82c33e4d43 Bug 430955 - "jsfun.h uses JSArenaPool without needed typename" [p=mh+mozilla@glandium.org (Mike Hommey) r=brendan a1.9=damons] 2008-05-09 00:40:10 -07:00
jorendorff@mozilla.com
9b2db511f4 Merge from cvs-trunk-mirror to mozilla-central.
--HG--
rename : js/src/jsobj.c => js/src/jsobj.cpp
2008-05-07 17:37:49 -07:00
reed@reedloden.com
888518dda2 Bug 410606 - "AIX linker error for trunk build xpconnect module : ERROR: Undefined symbol: .JSAutoTempValueRooter::operator delete(void*,unsigned long)" [p=shailen.n.jain@gmail.com (Shailen) r+sr=mrbkap a1.9=beltzner] 2008-05-07 03:26:52 -07:00
crowder@fiverocks.com
db98c2faeb Bug 432275: Regression - Java applets crashing browser [@ obj_eval], patch by mrbkap, r=crowder, a=beltzner 2008-05-06 15:01:32 -07:00
crowder@fiverocks.com
84d826ee05 Bug 432275 - Regression - Java applets crashing browser [@ obj_eval], r=igor, a=beltzner 2008-05-06 14:59:49 -07:00
bent.mozilla@gmail.com
eb31e16632 Bug 429442 - "crashes [@ nsJSIID::HasInstance][@ XPCNativeSet::FindInterfaceWithIID]". r+sr=jst, a=beltzner. 2008-05-06 14:37:50 -07:00
Benjamin Smedberg
4393fe5a30 Merge cvs-trunk-mirror to mozilla-central. Conflict resolution:
* client.mk: new NSS tag merge to client.py

--HG--
rename : js/src/jsapi.c => js/src/jsapi.cpp
rename : js/src/jsdbgapi.c => js/src/jsdbgapi.cpp
rename : js/src/jsopcode.c => js/src/jsopcode.cpp
2008-05-05 13:39:59 -04:00
crowder@fiverocks.com
21e08b8a71 Bug 429864: assertion at startup with venkman, patch by mrbkap, r=brendan, a=beltzner 2008-05-03 21:31:01 -07:00
crowder@fiverocks.com
e04b777729 Bug 431465 -- (relanding) Crash [@ DecompileExpression] with trap, r=brendan, shaver, igor; a=mtschrep 2008-05-03 21:20:23 -07:00
Benjamin Smedberg
d23620a37a Merge cvs-trunk-mirror to mozilla-central. One conflict resolution: updated NSPR tag from client.mk into client.py
--HG--
rename : js/src/jsdbgapi.c => js/src/jsdbgapi.cpp
rename : js/src/jsinterp.c => js/src/jsinterp.cpp
rename : js/src/jsobj.c => js/src/jsobj.cpp
rename : js/src/jsopcode.c => js/src/jsopcode.cpp
rename : js/src/jsparse.c => js/src/jsparse.cpp
2008-05-02 14:08:43 -04:00
bclary@bclary.com
b8c31e4e72 Sisyphus|JavaScript Tests - runtests.sh -I include conflicts with msvc include on Windows 2008-05-01 16:38:29 -07:00
gavin@gavinsharp.com
e76cb415a6 Back out patch for bug 431465 due to unit test failures 2008-05-01 16:06:43 -07:00
crowder@fiverocks.com
80a811f0de Addressing white-space nits. 2008-05-01 15:16:38 -07:00
igor@mir2.org
5cab25689b [Bug 427798] faster js_PutBlockObject(), r=brendan a1.9=shaver 2008-05-01 14:59:52 -07:00
crowder@fiverocks.com
aa2f89f028 Bug 431465 - Crash [@DecompileExpression] with trap, r/a=shaver 2008-05-01 14:36:19 -07:00
bclary@bclary.com
239dd9ab80 JavaScript Tests - update public failures, bug 404367 2008-05-01 08:05:24 -07:00
Benjamin Smedberg
44143a17c2 Merge from cvs-trunk-mirror to mozilla-central. No conflict resolution necessary.
--HG--
rename : js/src/jsinterp.c => js/src/jsinterp.cpp
rename : js/src/jsopcode.c => js/src/jsopcode.cpp
2008-05-01 09:50:06 -04:00
bclary@bclary.com
50b65436c4 JavaScript Tests - test for section ecma 262-3 15.4.5.1 2008-04-30 18:22:00 -07:00
bclary@bclary.com
daf599b79c JavaScript Tests - regression test for bug 414531 2008-04-30 18:17:05 -07:00
Vladimir Vukicevic
ce3a5f0097 Merge cvs-trunk-mirror to mozilla-central. No conflicts.
--HG--
rename : js/src/jsmath.c => js/src/jsmath.cpp
2008-04-30 15:34:49 -07:00
brendan@mozilla.org
b90454bf32 Fix JSOP_GETTHISPROP decompile-value-generator bug (431248, r=igor, a=dsicore). 2008-04-30 11:33:51 -07:00
gavin@gavinsharp.com
64ef898187 Bug 414531: The return value of some of math method of javascript is not IEEE standard on solaris, patch by Leon Sha <leon.sha@gmail.com>, r=brendan, a=damon 2008-04-30 10:15:41 -07:00
Benjamin Smedberg
5337262e90 Merge cvs-trunk-mirror to mozilla-central. No manual conflict resolution was necessary.
--HG--
rename : js/src/jsdbgapi.c => js/src/jsdbgapi.cpp
rename : js/src/jsfun.c => js/src/jsfun.cpp
rename : js/src/jsinterp.c => js/src/jsinterp.cpp
rename : js/src/jsopcode.c => js/src/jsopcode.cpp
2008-04-30 12:35:19 -04:00
igor@mir2.org
5c81e09b95 [Bug 431489] r=brendan a1.9=shaver 2008-04-30 06:30:38 -07:00
bclary@bclary.com
798117722c JavaScript Tests - regression test for bug 431428, by Jesse Ruderman 2008-04-30 05:41:59 -07:00
brendan@mozilla.org
3d10ff4835 Clear GetSrcNote cache in js_UntrapScriptCode (431428, r/a=shaver). 2008-04-29 19:18:19 -07:00
igor@mir2.org
34643896ed [Bug 429281] r=brendan a1.9=dsicore 2008-04-29 14:24:01 -07:00
igor@mir2.org
e34384934d [Bug 429739] proper handling of __noSuchMethod__ when it is invoked as constructor. r=brendan a1.9=dsicore 2008-04-29 14:17:11 -07:00