Commit Graph

219 Commits

Author SHA1 Message Date
Graydon Hoare
503c025d90 Bug 511309 - Delete class Fragmento and all uses of it, r=dvander.
--HG--
extra : rebase_source : 47047589288ac0758e0068307b5a8f393db97606
2009-08-20 17:22:47 -07:00
Graydon Hoare
ebe9c3f20b Bug 511237 - Remove primary use of Fragmento from jsregexp, r=dmandelin. 2009-08-18 15:32:54 -07:00
Robert Sayre
9cc65226f2 Backed out changeset 5817b38a8686 2009-08-19 15:30:06 -04:00
Igor Bukanov
a8f8431b74 bug 509143 - js_CloneRegExp is missing a call to js_SetLastIndex. r=mrbkap 2009-08-19 19:53:51 +03:00
Edwin Smith
fa572124fd Bug 510116 - Remove dead code paths and arguments in nanojit::compile, r=gal. 2009-08-05 15:06:00 -04:00
Edwin Smith
ad06720f03 Bug 510078 - Convert LirNameMap to HashMap<> and Allocator, r=gal.
* * *
Don't allocate CodeAlloc with GC and dont extend GCFinalizedObject (bug 506390 r=tharwood+)

* Change PageMgr::CodeAlloc from pointer to embedded instance.
* Assembler takes CodeAlloc& now, like it already does for Allocator&
* PoolObject.cpp|h now use VMCFG_NANOJIT instead of (deprecated) FEATURE_NANOJIT
  (both #defines are equivalent)

--HG--
extra : rebase_source : 90847a654d7f669a4c2ac364dd9aae7be38cae77
2009-08-04 14:18:38 -04:00
Edwin Smith
3967b233d5 Bug 510036 - Convert LabelMap to HashMap<> and Allocator, r=gal.
--HG--
extra : rebase_source : 4f1385922085fe086084c418aa22dcc4cc4c1961
2009-08-04 13:56:48 -04:00
Graydon Hoare
7bddd2c62f Bug 510015: TM: more Allocator merge fallout in jsregexp.cpp, r=gal.
--HG--
extra : rebase_source : 7607da6f49cc355af49b73528c826d5888291eb9
2009-08-12 12:26:17 -07:00
Edwin Smith
7de6b2bc04 Bug 509890 - Convert InsList to SeqBuilder<> and Allocator, r=gal.
--HG--
extra : rebase_source : 22303e739a0a6669c634595149028872aa7bd334
2009-08-04 13:11:53 -04:00
Edwin Smith
1913010941 Bug 509818 - Replace StringList with SeqBuilder<char*>, use Allocator, r=dvander. 2009-08-04 09:54:47 -04:00
David Anderson
3ae21db572 Fixed regex LIR to be x64 compliant (bug 514548, r=lw). 2009-09-09 15:53:26 -07:00
Andreas Gal
6771d193dd Introduce a register fence instruction to force all registers to be spilled (514374, r=edwsmith,rreitmai). 2009-09-03 14:43:30 -07:00
Luke Wagner
5c14309cd1 Bug 511750 - factor template utilities into js::tl (r=brendan)
--HG--
extra : rebase_source : a5a396811268e71af8e56c66dab491f3081bc20a
2009-09-01 18:46:19 -07:00
Andreas Gal
447939882c Load state after spilling or we might clobber a callee-saved register (513878, r=dvander). 2009-09-01 15:30:19 -07:00
Andreas Gal
317b5f2e3a Remove explicitSavedRegs and loop hacks from nanojit (513139, r=dvander). 2009-08-27 18:46:45 -07:00
Jason Orendorff
dafc9b5d2a Bug 508685 - Remove last parameter of defineProperty op. r=brendan. 2009-08-26 14:28:36 -07:00
Luke Wagner
7470eaa57b Bug 503952 - JSStringBuffer/JSCharBuffer with JSTempVector, part 1. r=jwalden 2009-08-07 20:09:11 -07:00
Graydon Hoare
b8154cc364 Bug 504462 - Merge tamarin's CodeAlloc into tracemonkey, r=gal. 2009-07-15 16:50:01 -07:00
Igor Bukanov
2e4416c672 bug 493457 - followup - fixing a typo in the patch. 2009-08-05 16:14:24 +02:00
Igor Bukanov
ef90f6f522 bug 493457 - uniform access to private slots. r=mrbkap, sr=jwalden 2009-08-04 23:06:55 +02:00
Graydon Hoare
2e92fcbbe3 Backed out changeset d0be9284ea67 2009-07-30 14:28:26 -07:00
Graydon Hoare
caf3859643 Bug 504462 - Merge tamarin's CodeAlloc into tracemonkey, r=gal. 2009-07-15 16:50:01 -07:00
Andreas Gal
e7f2714ea1 When finalizing, deallocate memory in a separate thread (505612, r=bent,brendan,waldo). 2009-07-27 21:10:12 -07:00
David Mandelin
cfb0d1fd1b Bug 506821: clean up trailing whitespace, r=brendan 2009-07-27 18:40:12 -07:00
Leon Sha
de4d2d6b24 Bug 506201 - regexp.cpp fails to compile on opensolaris: goto bypasses variable init. r=gal 2009-07-27 11:30:57 +08:00
Robert Sayre
9e0ade7287 Backed out changeset b3d459d23452 2009-07-24 00:01:37 -04:00
Andreas Gal
eb711234db Use a background thread to free() memory while sweeping (505612, r=brendan,bent). 2009-07-23 15:12:34 -07:00
Nicholas Nethercote
a8cd3ba765 Bug 504705 - TM/nanojit: use NULL as the condition for unconditional guards (2nd attempt). r=gal. 2009-07-22 14:54:41 +10:00
Luke Wagner
dbe10c51be Bug 505400: restore fullness check for regexp character set, r=dmandelin,gal 2009-07-21 15:19:40 -07:00
Andreas Gal
83790e006a Merge. 2009-07-20 14:06:39 -07:00
Andreas Gal
cb9a549160 Backed out changeset 692e8a1325f8 (bug 504705). Crashes with TMFLAGS=full on browser startup. 2009-07-20 13:58:00 -07:00
wes@page.ca
dc3efedd7d Bug 504647 - JITted regular expressions crash SPARC Nanojit. r=dmandelin 2009-07-20 14:11:12 +08:00
Nicholas Nethercote
dabda589bf Bug 504705 - TM/nanojit: use NULL as the condition for unconditional guards. r=gal. 2009-07-17 11:14:01 +10:00
Luke Wagner
0c16520e8b Bug 406271: add quantifier support for regexp->native compiler, r=dmandelin 2009-07-16 17:17:35 -07:00
Brendan Eich
221bd1197a Bug 503406 - TM: Trace calling a user-attached function to RegExp (r=mrbkap). 2009-07-15 17:48:22 -07:00
Andreas Gal
1af8dfb112 Avoid integer division in NewGCThing path (503157, r=jwalden). 2009-07-14 17:06:09 -07:00
David Mandelin
a10caff6bb Bug 502789: correct regexp->native compiler of handling case-insensitive matching of characters with multiple lower-case forms, r=lw 2009-07-13 12:41:30 -07:00
Brendan Eich
93c0af174f Pick nits including warning provoker in jsregexp.cpp from bugs 463535 and 453730. 2009-07-09 15:18:08 -04:00
Nicholas Nethercote
ab0511054e Bug 502539: move displacements into load instructions. r=gal,edwsmith. 2009-07-07 09:26:12 +10:00
David Mandelin
fd4086beac Bug 502058: blacklist regexps for native compilation more efficiently and reliably, r=gal 2009-07-06 13:21:32 -07:00
David Mandelin
4af7401ebd Bug 500621: make regexp lirbuf setup work the same as tracing lirbuf to avoid mem leak, r=dvander 2009-06-29 17:04:35 -07:00
Julian Seward
b96eed42da Bug 494864 - Make nanojit debug output easier to follow, r=graydon. 2009-06-24 20:32:00 -07:00
Jason Orendorff
52fe5a97ba Bug 497618 - Change JSString macros to methods. r=Waldo. 2009-06-10 20:29:44 -05:00
Nicholas Nethercote
1a33faa263 Bug 492301 - nanojit: remove some dead code. r=edwsmith 2009-05-18 01:45:46 -04:00
Nicholas Nethercote
9df38f0476 Bug 488775 - TM: widen LIR instructions. r=graydon,edwsmith 2009-05-09 14:38:34 -04:00
Igor Bukanov
3597961095 bug 491013 - fixing shared setter regression and eliminating several useless anonymous prototype objects. r=brendan 2009-05-06 20:33:10 -02:30
jorendorff
93c6d226d3 Record all calls to native functions (487134, r=gal, brendan). 2009-05-05 14:26:06 -07:00
Andreas Gal
fe1ed6adb9 Backed out changeset 6534f8b9aa74 (bug 491013, assert on startup). 2009-05-04 15:07:53 -07:00
Igor Bukanov
d77b8664fb bug 491013 - fixing shared setter regression and eliminating several useless anonymous prototype objects. r=brendan 2009-05-03 20:43:55 -04:00
Andreas Gal
a51f22dbdf Need an API exposed to control code cache size (474497, r=bent,brendan, sr=mrbkap). 2009-04-22 16:52:59 -07:00
Robert Sayre
dc86a73387 Merge mozilla-central to tracemonkey. 2009-04-17 21:35:32 -04:00
Andreas Gal
5b284aaa5a Remove unsafe RegExp.test traceable native, the generic fast native mechanism can take care of it (488703, r=jorendorff). 2009-04-16 15:34:14 -07:00
Ben Newman
17a2ceeaca Bug 484107 - XPCSafeJSObjectWrapper allows regexp variables to be clobbered. r=mrbkap+sr=brendan 2009-04-14 19:32:17 -07:00
Graydon Hoare
5689ffc3f8 Bug 474529 - Avoid artificial OOM conditions, r=gal. 2009-03-31 20:51:01 -07:00
Robert Sayre
150b7d8a28 Merge tracemonkey to mozilla-central. 2009-03-24 13:49:05 -04:00
Ben Turner
b9b06ef066 Fix further windows build bustage 2009-03-19 18:01:48 -07:00
Robert Sayre
116429311e revert to changeset b59984b88601 2009-03-20 00:23:44 -04:00
Robert Sayre
f7b741972b Merge tracemonkey to mozilla-central. 2009-03-20 00:04:47 -04:00
Ben Turner
270aed708f Fix further windows build bustage 2009-03-19 18:01:48 -07:00
dmandelin@mozilla.com
e93b7d4630 Copy entire regular expression into the code buffer (483920, r=gal). 2009-03-17 19:28:14 -07:00
David Mandelin
1b820884be Bug 483821: native regexps confused because of bug in hash key comparison, r=gal 2009-03-17 17:27:54 -07:00
Jim Blandy
875aee5e88 Bug 479258: Include "jsstdint.h" for <stdint.h> type use within SpiderMonkey. r=brendan 2009-03-18 11:38:16 -07:00
David Mandelin
b151fe5042 Bug 481760: myngle.com crash due to incorrect compiled regexp end-of-string check, r=brendan 2009-03-09 11:21:03 -07:00
Brendan Eich
b6154d5863 Fix for --disable-jit (again). 2009-03-04 19:40:09 -08:00
Brendan Eich
53c9096f08 Bug 480759 - TM: trace RegExp constructors (r=gal). 2009-03-04 19:26:16 -08:00
Robert Sayre
f4c8ebe128 Merge tm to m-c. 2009-03-03 13:48:15 -05:00
Jason Orendorff
73b1ee84ed Delete unused member variable and fix style issue discovered by Waldo just below. No bug. r=Waldo. 2009-02-27 13:34:32 -06:00
Robert Sayre
695b4646c3 Merge tm to mc 2009-02-19 11:48:08 -05:00
Igor Bukanov
7ac32de806 bug 478543 - fixing warnings about casts between function and data pointers. r=brendan 2009-02-19 09:33:37 +01:00
Jim Blandy
ede7e6d142 Bug 391488: Eliminate PTRDIFF macro; delete jssttddef.h. r=jimb
Delete jsstddef.h, since its only remaining purpose is to make certain
Win16-specific definitions; we don't support Win16 any more.  In
particular, we can just subtract pointers now, so the PTRDIFF macro is
unnecessary noise.

Most places get stddef.h via jstypes.h or some other header, so we can
just delete #inclusions of jstddef.h.  The exception is jskwgen.h, so
there we explicitly include <stddef.h> instead.
2009-02-18 09:14:51 -08:00
Leon Sha<leon.sha@sun.com>
128a82a274 Bug 476042 - Integrate sparc nanojit intro tracemonkey. r=gal, r=jim. 2009-02-16 10:10:03 +08:00
Blake Kaplan
67ff39ca4e Bug 478317 - Don't jump based on uninitialized memory. r=dmandelin 2009-02-13 11:11:16 -08:00
Andreas Gal
f796bcd60a Substitute operation counting with a watchdog thread (477187, 2nd attempt, r=brendan/mrbkap/jst, sr=brendan/jst). 2009-02-10 03:45:36 -08:00
Andreas Gal
2a20c2a6de Backing out bug 477187. Breaks xpcshell. 2009-02-09 22:54:05 -08:00
Andreas Gal
cbfbbd3cac Substitute operation counting with a watchdog thread (477187, r=brendan/mrbkap/jst, sr=brendan/jst). 2009-02-09 18:20:50 -08:00
Blake Kaplan
79c0a0ed2b Bug 476940 - Report an error when a script tries to use duplicate flags on a regexp. r=brendan 2009-02-06 14:28:48 -08:00
David Mandelin
31fc461439 Bug 465656: word-at-a-time compiled regexp matching, r=gal 2009-02-06 13:41:21 -08:00
Jason Orendorff
e4c1fb1cfd Bug 462027 - Bail off trace when reentering interpreter. r=gal. 2009-02-03 18:25:12 -06:00
Jason Orendorff
4e3f2cfd40 Revert to 07be1f190a3d. Revision 5f5c1cd63641 should not have been pushed. 2009-02-03 12:38:44 -06:00
Jason Orendorff
f6ffd1d380 [mq]: bug-462027-v9 2009-02-02 20:42:46 -06:00
Vladimir Vukicevic
a9f156bfa4 b=480659; special-case 1-char match nodes for ARM jit; r=dmandelin 2009-02-27 15:37:13 -08:00
Vladimir Vukicevic
a8f8d5c9c7 b=479525; fix nanojit on Windows CE (calling conventions, disable regexp double-char optimization); r=dmandelin 2009-02-26 12:04:37 -08:00
Blake Kaplan
b30598d3ae Bug 475469 - Don't assume cx->fp is a scripted frame. r=dmandelin 2009-01-27 17:10:44 -08:00
Blake Kaplan
390a28ac59 Bug 473709 - Protect |str| across the call to js_NewRegExp. r=jwalden 2009-01-15 17:54:05 -08:00
Igor Bukanov
f0dbec109f 436700 - fixing backref assert. r=dmandelin 2009-03-20 12:30:40 +01:00
Robert Sayre
9aa7891d67 Merge m-c to tracemonkey. 2009-01-07 11:42:59 -05:00
Jason Orendorff
7f92f10b08 Bug 468641 - TM: Add bytecode disassembly to JS_JIT_SPEW output (r=crowder) 2009-01-06 16:51:32 -06:00
Brian Crowder
ca4eed1e1d Bug 433073 - jsregexp.cpp should use dependent strings, r=igor 2009-01-06 09:18:35 -08:00
Andreas Gal
a59109830e Use a single lirbuf for the tracer and rewind lirbuf during GC (471821, r=danderson). 2009-01-02 10:55:02 -08:00
David Mandelin
90baccb99f Bug 471602 part 1: make regexp compiler use one shared LIR buffer, r=gal 2008-12-31 16:41:33 -08:00
David Mandelin
77dfbdd679 Attempted fix for bug 470492: top crash in regexp LIR generation, r=gal 2008-12-31 11:43:50 -08:00
Igor Bukanov
5f6b121715 bug 467441 - avoiding js_(Add|Remove)Root for regexp statics. r=crowder 2008-12-18 21:06:45 +01:00
Andreas Gal
6a2d183fee Stop generating LIR when running out of memory in the regexp compiler (471924, r=danderson). 2009-01-02 15:50:56 -08:00
Boris Zbarsky
dc570eacdd Bug 466935. Make JS_JIT_SPEW non-DEBUG build again. r=dmandelin,brendan 2008-12-11 13:55:04 -05:00
Rick Reitmaier
a70c5b7d48 Bug 468484 - LirBuffer has been modified to provide advance warning of out of memory (OOM) conditions, r=danderson.
LirBuffer has been modified to provide advance warning of
out of memory (OOM) conditions.

A new page is allocated LIR_BUF_THRESHOLD instructions
prior to reaching the end of page.  If the page allocation fails,
call to outOmem() will return true.  The buffer can still be
safely written to during during this period but it is assumed
the higher level code will catch this condition and handle
it appropriately as writing LIR_BUF_THRESHOLD instructions
past this point will cause a crash.

This opportunity was also taken to re-factor the code for
LirBufWriter making it more platform agnostic.
- All non-LInsp data in the instruction stream is now managed
  through structures that overlay the memory region.
- prepFor() was added to replace the multiple
  ensureReferenceable() calls for each instruction.
- insCall() was also modified somewhat in that the
  arguments are now stored growing downwards from
  the position of the pseudo instruction LirCallIns.

CodegenLIR now has LirBuffer checks at the granularity
of each emitXXX() call that is exposed publicly.  This seemed
like a reasonable approach since a client could potentially
call at this level indefinitely.  If we want to reduce the frequency
of these checks then we'd have to push the check up into the
verifier.

Assembler OOM handling has also changed.  The variable
_startingIns was added and contains the location at which
the assembler began writing code for the current
begin/assem/end sequence.   If an OOM condition occurs
the assembler will reset the current instruction pointer
to _startingIns, effectively overwriting the code that has
been generated.  This allows the assembler to produce
code indefinitely (and without error) until the upper layers
have noticed the error and respond accordingly.

The constant LARGEST_UNDERRUN_PROT was added
and needs to be set to a platform specific value that is
equal to or greater than the number of NIns written for
the largest possible instruction.  i.e.  you cannot write
more than this number of NIns to the buffer for each
call to underrunProtect().
2008-11-14 12:46:35 -08:00
Jason Orendorff
b7fb9bc849 Bug 460865 - Read barrier for cx->fp. r=mrbkap, r=dmandelin.
--HG--
extra : rebase_source : 19963188b2f9f96336ce6ca28dbaefccf3a639b7
2008-12-09 10:38:32 -06:00
Andreas Gal
bfd4fe191d Abort compilation of a regular expression if we run out of memory during recording (466588, r=danderson). 2008-11-28 17:31:17 -08:00
David Mandelin
0952a00f72 Bug 463535: compile regexps to native lazily, r=gal 2008-11-21 17:54:53 -08:00
Jim Blandy
0f68ad7ed4 (no bug) Move definition of RESideExit *exit to top of function, to avoid error from GCC about jumping across its initialization. 2008-11-21 10:46:28 -08:00
David Mandelin
cb596bbb0a Fixed bug 464866: use regexp source+flags as key to compiled code, r=gal 2008-11-20 16:37:36 -08:00