Leon Sha<leon.sha@sun.com>
0c71462fb6
Bug 488775 - TM: widen LIR instructions. Sparc Changes. r=gal. remove dead codes
2009-05-12 11:43:57 +08:00
Leon Sha<leon.sha@sun.com>
2e31f66b15
Bug 488775 - TM: widen LIR instructions. Sparc Changes. r=gal.
2009-05-12 10:41:25 +08:00
Jacob Bramley
c942893875
Bug 483962 - Remove ARM-specific code from jstracer.cpp. r=vlad
2009-05-11 12:16:01 -04:00
Jacob Bramley
d7dc2e67bf
Bug 487416 - TraceMonkey: Improve run-time detection of ARM processor features. r=vlad
2009-05-09 16:14:38 -04:00
Jacob Bramley
7dd0b8fd55
Bug 486669 - TraceMonkey: The ARM-specific _nSlot pointer should be reset along with _nIns. r=vlad,edwsmith
2009-05-09 15:35:56 -04:00
Jacob Bramley
150373e22b
Bug 486096 - TraceMonkey: ARM BKPT instructions are not properly encoded. r=vlad
2009-05-09 15:32:29 -04:00
Nicholas Nethercote
9df38f0476
Bug 488775 - TM: widen LIR instructions. r=graydon,edwsmith
2009-05-09 14:38:34 -04:00
Graydon Hoare
ed4b20f51c
Bug 491514 - Followup, change from sizeof(LIns*) to sizeof(LIns), r=gal.
2009-05-06 17:41:52 -07:00
Andreas Gal
79f3ebed61
We don't constant fold math on doubles and ints (465286, r=edwsmith).
2009-05-06 16:48:41 -07:00
Graydon Hoare
cb7f2307ba
Bug 491514 - Lower skip limit in tracer, r=gal.
2009-05-06 15:19:50 -07:00
Leon Sha<leon.sha@sun.com>
b8845d61de
Bug 488639 - SPARC jit: testIntOverflow, testIntUnderflow failed. r=gal.
2009-04-22 16:06:45 +08:00
Jeff Walden
c9680230c4
Bug 473117 - Rejigger how guards use side exits, and fix an erroneous comment. r=graydon
2009-04-18 16:47:23 -07:00
Andreas Gal
2866c6d091
Remove amd64 code (will be replaced with tamarin's new amd64 backend, 487981, r=danderson).
2009-04-13 16:16:10 -07:00
Jacob Bramley
3c4a821492
bug 486675 - always using setError to set _err
2009-04-06 13:32:46 +02:00
Graydon Hoare
5689ffc3f8
Bug 474529 - Avoid artificial OOM conditions, r=gal.
2009-03-31 20:51:01 -07:00
Robert Sayre
d3ae3d827d
Merge mozilla-central to tracemonkey.
2009-03-29 10:42:32 -07:00
Vladimir Vukicevic
eb82870ba4
b=484561; [arm] fix EABI calling convention; clean up asm_call; r=graydon
2009-03-27 14:31:53 -07:00
Vladimir Vukicevic
34105fd15e
b=484561; [arm] fix broken LIR_alloc; r=graydon
2009-03-27 14:29:14 -07:00
Leon Sha<leon.sha@sun.com>
f4ef4d5b44
Bug 502584. Firefox will crash when visiting www.hp.com on sparc platform. r=gal. NPOTB code
2009-07-07 14:27:57 +08:00
Jeff Walden
61e8b53f29
Add a static assertion for another latent LIR opcode numbering constraint. No bug, r=mrbkap
2009-03-24 14:11:14 -07:00
Robert Sayre
150b7d8a28
Merge tracemonkey to mozilla-central.
2009-03-24 13:49:05 -04:00
Jim Blandy
9391012cb0
Bug 479258: Don't define <stdint.h> types in public headers. r=brendan
...
On systems that don't have <stdint.h> (i.e., Microsoft, which is
tragically underfunded and cannot spare the resources necessary to
provide and support this header: http://tinyurl.com/absoh8 ),
SpiderMonkey header files should not introduce definitions for these
types, as doing so may conflict with client code's attempts to provide
its own definitions for these types.
Instead, have jstypes.h define JS{Int,Uint}{8,16,32,64,Ptr} types
based on configure's results, and make jsstdint.h into an uninstalled
header for use within SpiderMonkey that does whatever is necessary to
get definitions for the <stdint.h> types.
The changes to make the appropriate SpiderMonkey .cpp files #include
"jsstdint.h" explicitly are in a separate patch, for ease of review.
2009-03-18 11:38:15 -07:00
Nicholas Nethercote
ea15e54ba4
Bug 475876: change --with-valgrind to --enable-valgrind and add hooks to tell valgrind about the JIT's self-modifying code. r=gal (JIT parts), r=luser (build config parts).
2009-03-05 13:24:03 -08:00
Vladimir Vukicevic
52ab655d24
b=481351; TM ARM crash in js_FastNewObject while logging in to gmail (bad constant-offset load codegen); r=graydon
2009-03-04 22:36:22 -08:00
Hiroyuki Ikezoe
583692b648
b=481291, missing return statements in NativeARM.cpp, r=vlad
2009-03-04 12:32:11 -08:00
Robert Sayre
5bdafd3aba
Merge tm to m-c.
2009-02-28 12:38:33 -05:00
Ginn Chen
db99836469
Bug 476042 Integrate sparc nanojit, fix for LDUB/LDUH, r=gal
2009-02-27 17:17:08 +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
Andreas Gal
1cbf259c3c
Improve blacklisting (479109, r=graydon).
2009-02-25 18:47:22 -08:00
Leon Sha<leon.sha@sun.com>
604e62a813
Bug 476042 - Integrate sparc nanojit intro tracemonkey. Put the flush instruction cache code to the correct place. r=gal
2009-02-24 12:46:27 +08:00
Andreas Gal
d8bfd089e8
Backout 479109. Breaks trace-tests.
2009-02-23 12:29:08 -08:00
Andreas Gal
c36a8ab483
Improve blacklisting algorithm (479109, r=graydon).
2009-02-23 11:31:20 -08:00
Nicholas Nethercote
bf6590048b
Bug 478340 - TM: kill many of the warnings when building 'js'. r=mrbkap
2009-02-19 11:17:31 -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
ddb759753a
Bug 478314 - Improve this error message and the corresponding comment to help future debuggers. r=gal
2009-02-13 14:07:45 -08:00
Graydon Hoare
195e361c59
Bug 477425 - Back out lirbuf-based allocation of fragments and treeinfos, r=gal.
2009-02-11 21:59:57 -08:00
David Mandelin
39b9e72a0c
Bug 475115: LIR_jtbl: jump tables to implement jsop_tableswitch, r=gal,r=edwsmith
2009-02-11 17:40:27 -08:00
Jason Orendorff
0e5b827700
Bug 477052 - Make some nanojit classes initialize their members. r=edwsmith,gal.
...
--HG--
extra : rebase_source : 2f2c77ab6f4d4e373466ef766f0532450af5d370
2009-02-11 18:40:54 -06:00
Andreas Gal
fd4421f8bd
Don't try to align fragment entry with nopl since some processors do not support it (473552, r=graydon).
2009-02-10 17:18:57 -08:00
Jason Orendorff
0fcee1ed9f
Bug 477713 - Allow LIR_ret at end of trace. r=edwsmith.
2009-02-10 13:23:27 -06:00
Graydon Hoare
5a88071db0
Bug 477425 - Fix pathological doubling in Fragmento uncovered by new pressure on lirbuf, r=jorendorff.
2009-02-10 10:08:58 -08:00
Graydon Hoare
d459aeaced
Bug 477425 - Allocate TreeInfo and UnstableExit in LirBuffer, r=gal.
2009-02-09 16:49:25 -08:00
David Mandelin
e38c9322a4
Bug 476560: nanojit assembler needs to clear its state before each compilation, r=gal
2009-02-06 11:59:54 -08:00
Andreas Gal
0491e2d094
Add skip() to LirFilter so we can pass skip-requests through instead of going to the LirBufWriter directly (477089, r=shaver).
2009-02-05 11:14:44 -08:00
David Mandelin
e145a4b2b7
Fix warning for unhandled switch cases
2009-02-04 18:58:07 -08:00
David Mandelin
63ebd4662c
Fix initialization order warning
2009-02-04 18:49:54 -08:00
Vladimir Vukicevic
4aacd882a6
b=476786; tracemonkey crash with verbose in debug mode; r=gal
2009-02-03 21:20:59 -08:00
Andreas Gal
424b5e8997
Detect OOM condition and flush code cache when destroying the recorder and don't enter endAssembly when OOM (475821, r=danderson).
2009-01-28 15:12:31 -08:00
Graydon Hoare
170e5b5921
Bug 473688 - provide a 2-level hash map (global, pc) -> tree, r=gal.
2009-01-26 19:53:19 -08:00
Robert Sayre
cd3999104d
Merge m-c to tm.
2009-01-26 13:54:59 -08:00
David Anderson
0e4418db16
Bug 473880 - TM: Add a way to keep stack values alive without emitting guard code. r=gal.
2009-01-23 15:21:55 -06:00
Vladimir Vukicevic
63e0570b8d
[arm] fix up ARM floating point comparisons; fixes ARM trace-test (relanding)
2009-01-23 00:53:15 -08:00
Andreas Gal
1d277bc633
Backout all patches since last mozilla-central merge (Thu Jan 22 19:14:02 2009 -500 by sayrer).
2009-01-25 02:58:22 -08:00
David Anderson
ee93602364
Bug 473880 - TM: Add a way to keep stack values alive without emitting guard code. r=gal.
2009-01-23 15:21:55 -06:00
Vladimir Vukicevic
7679b7a4be
[arm] fix up ARM floating point comparisons; fixes ARM trace-test
2009-01-23 00:53:15 -08:00
Daniel Holbert
2a7d88e05a
Bug 473236 - Remove executable bit from files that don't need it. (Only changes file mode -- no code changes.) r=bsmedberg
2009-01-21 22:55:08 -08:00
Vladimir Vukicevic
0a72958c35
b=484561; [arm] minimal fix to get LIR_alloc working
2009-03-21 08:40:19 -07:00
Vladimir Vukicevic
a7b8dad8aa
arm bustage fix
2009-03-20 19:40:54 -07:00
Vladimir Vukicevic
3b44833a46
call underrunProtect more aggressively, and remove some LD32_nochks that weren't being protected
2009-03-20 15:53:38 -07:00
Vladimir Vukicevic
d317d0075d
b=480796; detect whether ARM chip has VFP and/or v6t2 instructions; r=gal
2009-03-20 15:53:33 -07:00
Vladimir Vukicevic
904d0dce27
Fix asm_quad to use existing load instructions; fix branch macros to use existing conditional branch macro
2009-03-20 15:53:14 -07:00
Vladimir Vukicevic
0034034e03
[arm] b=481761; use movw/movt when possible for loading 32-bit constants; r=graydon
2009-03-20 15:53:14 -07:00
Vladimir Vukicevic
b72889b918
[arm] b=481761; clean up load and store instructions; change move macro to follow covention; r=graydon
2009-03-20 15:53:14 -07:00
Vladimir Vukicevic
6ec71623d5
[arm] b=481761; rename MOV instructions to match ARM, not x86; r=graydon
2009-03-20 15:53:14 -07:00
Vladimir Vukicevic
7d6eca6372
[arm] b=481761; fix up asm_cmov; assert on non-qcmov; r=graydon
2009-03-20 15:53:14 -07:00
Vladimir Vukicevic
d0fa8fe9c9
[arm] b=481761; Finish up ALU op conversions; r=graydon
2009-03-20 15:53:14 -07:00
Vladimir Vukicevic
b992e5da9e
[arm] b=481761; ARM ALU step 1; r=graydon
2009-03-20 15:53:14 -07:00
Vladimir Vukicevic
4afdab4e12
[arm] b=481761; Rename ccName -> condName, rename Scratch to IP; r=graydon
2009-03-20 15:53:14 -07:00
Ginn Chen
ea9689bd2a
Bug 474757 Several build failures on Solaris build for js/src r=danderson
2009-01-23 16:09:27 +08:00
Ginn Chen
9473943bf6
Bug 474757 Several build failures on Solaris build for js/src r=danderson
2009-01-23 15:57:54 +08:00
Robert Sayre
e21c1a1d06
Merge m-c to tracemonkey.
...
--HG--
rename : js/src/js.cpp => js/src/shell/js.cpp
2009-01-14 18:25:22 -05:00
Andreas Gal
46c4fe89b3
Trampolines can be 2 words, so take that into account when reserving space for LIR_call instructions (473225, r=danderson).
2009-01-12 19:46:13 -08:00
Andreas Gal
4fb7be0fff
Backed out changeset 8775c279e59c
2009-01-12 19:39:55 -08:00
Andreas Gal
162f124fd9
Trampolines can be 2 words, so take that into account when reserving space for LIR_call instructions (473225, r=graydon).
2009-01-12 17:16:21 -08:00
Andreas Gal
4a9dbdaf12
Push a dummy copy of EBP onto the stack to make sure EBP is aligned in the new stack frame (472791, r=graydon,edwsmith).
2009-01-09 15:18:00 -08: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
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
Andreas Gal
21b0d26f45
Allocate the next page to be used in a lirbuf early to avoid running OOM during a page overflow (471316, r=danderson).
2008-12-30 17:03:43 -08:00
Graydon Hoare
67237b98c7
Bug 469012 - crashing LirBufWriter::insLinkToFar, r=danderson.
2008-12-19 16:20:51 -08:00
Graydon Hoare
77e4ed2e26
Bug 464862 - Calculate call-argument deltas relative to last word of LirCallIns, not first, r=danderson.
2008-12-19 16:20:13 -08:00
Jim Blandy
b3a9d80456
Bug 469225: Make js/src/configure take a --disable-arm-vfp option. r=vladimir
...
This controls whether NJ_ARM_VFP is #defined in the SpiderMonkey
build. By default it is enabled.
Note that commenting out the hard-wired definition of NJ_ARM_VFP in
js/src/nanojit/NativeARM.h makes that line of the file match what's in
tamarin-redux, so hopefully there won't be conflicts with whatever
arrangement Adobe comes up with to control this.
2008-12-19 10:20:36 -08:00
Neil Rashbrook
13238265ed
Bug 469289 Make nanojit build with VC7.1 r=danderson
2008-12-13 23:45:38 +00:00
Graydon Hoare
aac4a6a13a
Bug 468484 - Back out further arm-wince breakage from recent merging activity.
2008-12-11 16:11:29 -08:00
Graydon Hoare
bb7e9793cf
Bug 468484 - back out most of changeset 2963765d5585 and ifdef-guard members of avmplus::Config, fix arm build.
...
* * *
Bug 468484 - ifdef-guard members of avmplus::Config structure that broke ARM build.
2008-12-11 13:50:55 -08:00
Jeff Walden
6afac16038
Bug 465255 - Rewrite TraceRecorder::cmp, take five. (Three, sir!) Three! r=gal
2008-12-08 21:11:56 -08:00
Graydon Hoare
3cbd1cd998
Bug 450000 - Back out nanojit jump-patching machinery, r=danderson.
2008-12-10 17:31:17 -08:00
Graydon Hoare
ba3dc13800
Bug 468484 - Minor adjustments to match changes in tamarin, r=gal.
2008-12-10 17:25:46 -08:00
Graydon Hoare
37cfe58e72
Bug 468484 - Rename avmplus::AvmConfiguration, adjust sites of use, r=gal.
2008-12-10 17:19:40 -08:00
Jim Blandy
a04892f62e
Bug 465640: Use autoconf to declare stdint types on platforms that don't have stdint.h r=bsmedberg
...
At configure time, check for <stdint.h>. If we don't have it, find
integer types of various sizes. On Windows, where we can't run
compilation tests in configure, hard-code definitions suggesting the
use of the built-in __intN types for the exact-size types, and
<stddef.h> for the pointer-sized types.
Use namespace-clean names for the preprocessor macros we define.
Since these types are used in the public JavaScript API, the configure
script needs to place the definitions it finds in js-config.h, the
installed configure-generated header, so it can be used by jsapi.h and
that gang.
New header js/src/jsstdint.h does what it takes to get definitions for
the exact-size and pointer-size integral types. It includes
<stdint.h> when available, uses the types found by configure.in to
define the {,u}int{8,16,32,64,ptr}_t types itself, or uses the __intN
types and the <stddef.h> header.
Remove now-unnecessary and possibly conflicting definitions of intN_t
types from js/src/nanojit/avmplus.h.
2009-01-13 10:50:24 -08:00
Edwin Smith
b5094e7c4a
Bug 468484 - isQuad(LIR_callh) on 32bit cpu's should be false (r=dvander+), r=danderson.
2008-11-20 15:39:45 -05:00
Edwin Smith
6415706f0d
Bug 468484 - Fixed a couple more small nanojit injections, r=danderson.
2008-11-19 15:16:20 -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
Edwin Smith
d1925631b4
Bug 468484 - trivial cleanups to simplify armjit merge (r=me), r=danderson.
2008-11-13 12:52:26 -05:00
Leon Sha<leon.sha@sun.com>
314e79c76f
Bug 468484 - Bug 463182 - Can not build tamarin-redux on solaris with Sun compiler. stejohns: review+, r=gal.
2008-11-06 13:37:37 +08:00
Edwin Smith
774d38113c
Bug 468484 - Fix cascading register spilling bug 462522 (r=rreitmai+), r=danderson.
2008-10-31 15:56:02 -04:00
Edwin Smith
903336fe43
Bug 468484 - Fixed bug causing too much spilling, other arm tweaks, r=danderson.
2008-10-28 15:16:05 -04:00
Edwin Smith
795ab907f0
Bug 468484 - fix boundary bug injected by CallInfo change, r=gal.
2008-10-22 15:18:41 -04:00
Steven Johnson
4dfea32fd4
Bug 468484 - redid nMarkExecute() to fix the bug. Now it always does exactly one page, r=gal.
2008-10-21 18:34:10 -07:00
Graydon Hoare
a6428d33c2
Bug 468484 - Re-insert asm-counting code lost in previous redux-tracemonkey merge, r=gal.
2008-12-09 11:53:26 -08:00
Jeff Walden
e48c310d01
Dangit, why do the tests run correctly locally in small batches? Backing out bug 465255...
2008-12-08 22:19:54 -08:00
Jeff Walden
f143157358
Bug 465255 - Rewrite TraceRecorder::cmp, take two. r=gal
2008-12-08 21:11:56 -08:00
Edwin Smith
4ab0561335
Bug 468484 - make asm_output[123] varadic, and add some LIR instruction comments, r=gal.
2008-10-21 14:53:14 -04:00
Steven Johnson
fbc6fd0ad9
Bug 468484 - internal tamarin-redux merge (mostly formatting), r=gal.
2008-10-20 15:52:11 -07:00
Steven Johnson
13f8b6629c
Bug 468484 - Macro-ize calls to new/delete to account for MMgc interactions, r=gal.
2008-10-20 15:51:13 -07:00
Graydon Hoare
0fc5a42ca4
Bug 468484 - Change Fragmento's fragment map from a pointer to a member, r=gal.
2008-12-08 15:23:41 -08:00
Andreas Gal
e346e5cf60
Eliminate mergeCount from fragments since its unused (468391, r=danderson).
2008-12-07 19:13:50 -08:00
Robert Sayre
685eced553
Merge m-c to tracemonkey.
2008-12-06 00:54:08 -08:00
Jeff Walden
77eeb36575
Back out bug 465255, seems I was wrong about the compile error and warning being the only bugs.
2008-12-05 19:51:35 -08:00
Jeff Walden
6cb6d5d43b
Bug 465255 - Rewrite TraceRecorder::cmp. r=gal
2008-12-05 16:17:59 -08:00
David Anderson
ed25d09ae1
Fixed a register allocation bug in nanojit when an argument using FST0 appeared twice in an argument list (bug 465484, r=edwsmith).
2008-12-04 12:34:38 -08:00
David Anderson
14bfd2d9ab
Fixed nanojit crashing when the reservation table filled (bug 460511, r=rickr).
2008-12-04 11:41:43 -08:00
Brad Lassey
fdb2d669b4
Bug 464052 - windows compilers don't like variables named far r=crowder
2008-12-03 08:41:12 -05:00
Roy Tam
d3c6e1f3d0
Bug 453636 Make nanojit build with VC7.1 r=danderson a191=beltzner
2008-11-27 10:21:22 +00:00
Brendan Eich
37c40ca7c0
Merge.
2008-11-17 16:29:40 -08:00
Andreas Gal
cdbe1015e3
Don't attempt to do CSE across labels (465276, r=danderson).
2008-11-17 00:05:29 -08:00
David Anderson
d46ed014cf
Fixed edge case in nanojit register allocation for shl/shr (bug 465135, r=gal).
2008-11-16 21:36:33 -08:00
Jesse Ruderman
e23679569a
Remove '\n' from NanoAssertMsgf calls (made redundant by the patch in bug 452674)
2008-11-12 18:02:34 -08:00
Jeff Walden
c90c1d272e
Bug 463697 - Need an equivalent to jsopcode.tbl, but for LIR opcodes/instructions, take two. r=gal, r=edwsmith on the first iteration as well
2008-11-08 01:45:50 -08:00
timeless@mozdev.org
1efe45f72f
Bug 464212nanojit/Nativei386.cpp(148) : warning C4309: 'initializing' : truncation of constant value
...
r=gal
2008-11-11 11:20:07 +01:00
Andreas Gal
51726b48f9
Backed out changeset cb559a14ad77
2008-11-10 19:14:00 -08:00
Jeff Walden
932287a573
Bug 463697 - Need an equivalent to jsopcode.tbl, but for LIR opcodes/instructions. r=gal, r=edwsmith
2008-11-08 01:45:50 -08:00
Vladimir Vukicevic
1ad86545f7
[arm] b=462430, implement LIR_ldcs, re-enable regexp jit for ARM
2008-11-09 17:36:30 -08:00
Vladimir Vukicevic
55861cdf74
[arm] Fix up ARM nj backend to take into account exit block merging and other changes. Also simplify some branch code along the way.
2008-11-09 14:22:28 -08:00
Vladimir Vukicevic
26b45638d4
whitespace/tab cleanup in NativeARM.cpp
2008-11-08 22:27:24 -08:00
Andreas Gal
43daeaca87
Don't spill type definitions in avmplus.h into the global namespace (462288, r=danderson).
2008-11-07 15:52:51 -08:00
Andreas Gal
e609f0bb95
Cleanup GuardRecord, SideExit, and InterpStruct and extract VM-dependant fields (463313, r=danderson).
2008-11-07 15:23:43 -08:00
David Anderson
a6c715fb81
Fixed memory leak in nanojit's LabelStateMap (no bug, r=gal).
2008-11-04 19:22:13 -08:00
David Anderson
5ee0ea8b50
Fix using wrong regalloc helper in asm_ld peephole opt (r=rreitmai).
2008-11-04 16:52:25 -08:00
David Anderson
16b6dd740c
Peephole optimize various LIR load patterns for x86 addressing (bug 444682, r=gal).
2008-11-04 16:34:13 -08:00
Graydon Hoare
6901121f8d
Fix MSVC sensitivity to symbols called 'far'
2008-11-04 16:28:05 -08:00
David Mandelin
c92c2000cc
Bug 461050 WIP: compiling simple regexps, r=danderson,agal
2008-11-04 14:51:51 -08:00
Graydon Hoare
9198f045ad
Bug 462228 - Add interface to disconnect and reconnect loops in nanojit, r=gal.
2008-11-04 14:20:19 -08:00
Graydon Hoare
5cfd909934
Bug 462228 - Merge code-patching functions in nanojit, r=rreitmai.
2008-11-04 14:18:17 -08:00
David Anderson
db369008ec
Fixed memory leak in LInsHashSet (bug 462826, r=gal).
2008-11-03 19:43:47 -08:00
David Mandelin
d0a8376658
Bug 462412: API to delete a single fragment, r=danderson
2008-11-03 16:14:44 -08:00
David Anderson
65f7adbd31
Fixed OOM handling when starting a recorder or assembler (bug 451322, r=gal+rreitmai).
2008-11-03 16:10:20 -08:00
David Mandelin
f8d1b7798b
Preserve param1 over loop iters if it is used, desk r=danderson
2008-10-31 16:48:14 -07:00
Andreas Gal
4eafb60801
Add 16-bit non-volatile loads to nanojit (454301, r=danderson).
2008-10-30 14:17:42 -07:00
David Anderson
bf1a78f4fe
Implemented multiple type specialized trees per entry point (bug 450833, r=gal)
2008-10-27 20:42:49 -07:00
Rob Arnold
6e2f659fac
Fix memory leak in LInsHashSet::grow - bug 461069 r=danderson
2008-10-22 23:07:37 -04:00
Andreas Gal
e2a6acb46a
Use LIR_loop for loop edge to avoid going into a side exit handler at every loop edge (461231, r=danderson).
2008-10-22 16:00:08 -07:00
Graydon Hoare
95bed8b2ed
Bug 461205 - make callee-save LIR_param use optional. r=gal,edwsmith
2008-10-22 14:32:37 -07:00
Vladimir Vukicevic
0a60bbe04b
[arm] fix build after SideExit sharing patch
2008-10-22 11:11:51 -07:00
Vladimir Vukicevic
efb82ea705
[arm] correctly have chk version of LD underrunProtect
2008-10-22 11:02:24 -07:00
Vladimir Vukicevic
d2f0736eb6
[arm] misc codegen fix
2008-10-22 11:02:24 -07:00
Vladimir Vukicevic
57b6c8d721
[arm] Use real B/BX instead of BL for side exit jumps; no need to update lr
2008-10-22 11:02:24 -07:00
Vladimir Vukicevic
9ae67df93c
[arm] Get rid of CALL, just use BL directly
2008-10-22 11:02:24 -07:00
Vladimir Vukicevic
844190ed5d
[arm] Get correct value in return reg after fragment exit
2008-10-22 11:02:24 -07:00
Vladimir Vukicevic
eb73398c11
[arm] Enable VFP
2008-10-22 11:02:24 -07:00
Andreas Gal
b14d526b66
Merge.
2008-10-21 17:50:52 -07:00
Andreas Gal
ec7efc925c
Remove code to unlink trees to reduce the size of GuardRecord. Allow GuardRecords to share one common SideExit structure. The VM places both explicitly into the LIR (460538, r=danderson).
2008-10-21 17:50:32 -07:00
Vladimir Vukicevic
89d7a76a6b
[arm] Use correct register for return value; also don't bother saving full set of callee-saved registers using PUSH, they'll be saved individually
2008-10-20 17:20:05 -07:00
Vladimir Vukicevic
af0b642859
More ARM fixes; initialize free reg list correctly initially. Also use LastReg+1 instead of NJ_MAX_REGISTERS in RegAlloc -- LastReg+1 is what's used in the .h file, to avoid any mismatches.
2008-10-20 15:31:28 -07:00
Vladimir Vukicevic
3164784c33
Make ARM nanojit compile again (doesn't run)
2008-10-20 11:18:30 -07:00
Edwin Smith
d238c8bb21
remove dead refs to non-existant class RegionTracker
2008-10-20 10:15:07 -07:00
Rick Reitmaier
2cc651e33b
refactor Assembler.cpp ; passing acceptance on mac
2008-10-20 10:15:07 -07:00
Edwin Smith
9ce451ef43
fix linux compile errors
2008-10-20 10:15:07 -07:00
Edwin Smith
1896977ce5
fixes to enable ARM nanojit to build, at least
2008-10-20 10:15:07 -07:00
David Mandelin
b81d96a696
Taking change from tamarin-redux needed to allow LIR forward branches
2008-10-17 18:01:19 -07:00
Graydon Hoare
bf84bf6273
Merge tamarin-redux (nanojit2) into tracemonkey (457786, r=edwsmith,gal,danderson).
2008-10-13 13:29:18 -07:00
Andreas Gal
9bfc3c5072
Properly recover from a nested side exit with more than a single level of nesting (459539, r=danderson).
2008-10-12 15:39:32 -07:00
Jason Orendorff
a27d101dab
Bug 458735 - Improve internal API for traceable natives (r=brendan, nanojit r=edwsmith)
2008-10-08 17:08:33 -05:00
Boris Zbarsky
ffd5e8306f
Adding a few more comments
2008-10-08 14:37:03 -04:00
David Anderson
9c7d3f333f
Fixed regression where cmov was disabled on AMD64.
2008-10-01 17:58:38 -05:00
Vladimir Vukicevic
f761c61b8e
TM: move cmov_available setting into nj arch backends where appropriate
2008-09-30 17:15:09 -07:00
Andreas Gal
bd2e228fd0
Fix constant folding for cmov and add folding of or/and/xor (457456, r=danderson).
2008-09-27 13:10:24 -07:00
Andreas Gal
5fdd5d2b67
Properly handle cmov and sse2 flags, and put them in a central place not into each platform-dependant assembler (457355, r=danderson).
2008-09-26 20:39:21 -07:00
Neil Rashbrook
6f6de04b5e
Make nanojit build non-debug with VC7.1 (bug 455210, r=danderson).
2008-09-24 10:21:49 -07:00
David Anderson
ccd5e825b9
Fixed jstracer's operator delete leaking out into other shared libraries (bug 452721, r=gal).
2008-09-23 18:12:53 -07:00
Andreas Gal
da5081c842
Properly calculate tree exit/call guards (bug 453397, r=danderson).
2008-09-19 18:45:57 -07:00
Boris Zbarsky
c504a551d6
Adding some comments
2008-09-19 17:54:49 -04:00
Andreas Gal
dab25898eb
Don't export operator new/delete except if really needed (452721, r=danderson).
2008-09-16 13:57:59 -07:00
Vladimir Vukicevic
81dcc17709
Get rid of bogus nanojit arm platform stats line
2008-09-10 13:08:08 -07:00
Vladimir Vukicevic
4a51b1989f
[arm] Use preindexed STR instruction instead of separate STR and SUB in asm_pusharg
2008-09-05 18:24:58 -07:00
Vladimir Vukicevic
de76f2638d
[arm] Have asm_quad copy direct from const to destination, if there's no register allocated for the const -- don't load into fp reg just to store it.
2008-09-05 17:24:54 -07:00
Vladimir Vukicevic
66c6f5db3a
[arm] use arm_ADDi and let it take care of LD32 if necessary.
2008-09-05 17:23:36 -07:00
Vladimir Vukicevic
0b61a36a81
[arm] Don't load arg into a register in asm_pusharg if it's not in one already.
2008-09-05 17:19:31 -07:00
Vladimir Vukicevic
5c53ce04cc
[arm] Don't use STMIA + ADD to move a fp call result into memory; use two STRs. Also use Scratch + tmp reg for asm_mmq, instead of just tmp.
2008-09-05 17:18:33 -07:00
Vladimir Vukicevic
7f39cd73d0
[arm] speed up store64 with constant value; also use xor for imm0 loads into a gp reg
2008-09-05 17:17:25 -07:00
Vladimir Vukicevic
02b2a31dc8
[arm] make asm_quad stick its constants into the instruction stream, with a branch over, to ensure that the data is close enough for a PC-relative FLDD
2008-09-05 17:15:23 -07:00
Vladimir Vukicevic
6ef2cd20aa
[arm] Make ADDi into a function, since it's doing a lot of work
2008-09-05 17:14:05 -07:00
Ginn Chen
2763e5d63e
Make TraceMonkey build on Solaris x86 with Sun Studio 12 (bug 452588, r=danderson).
2008-09-05 16:56:03 -07:00
David Anderson
85d4033733
Fixed a verbosity mode memory leak in LirNameMap::addName (bug 453895, r=sayrer).
2008-09-05 16:05:13 -07:00
Ginn Chen
a3f5be56ad
Added new macro AVMPLUS_UNIX to reduce redundancy and add Solaris support to the TM browser build (bug 452589, r=dvander).
2008-09-05 15:15:00 -07:00
David Anderson
f7e43913ab
Fixed verbose printing typo on AMD64.
2008-09-04 19:39:18 -07:00
David Anderson
1fef1cf8ac
Make sure 32-bit loads into 64-bit registers are sign-extended.
2008-09-04 18:32:00 -07:00
David Anderson
073cbf54c2
Improved AMD64 allocation for float ops that get stored back into memory.
2008-09-04 11:56:54 -07:00
David Anderson
5e828c58d4
Fixed float ops to deal with being handed an LHS GPR reservation on AMD64.
...
Fixed nanojit LIR verbosity crashing on AMD64.
2008-09-04 11:53:49 -07:00
Neil Rashbrook
4625709517
Fixed nanojit not building on VC 7.1 (bug 453636, r=dvander).
2008-09-04 10:29:50 -07:00
Vladimir Vukicevic
a4ec50d569
Add VFP for floating point ops to nanojit ARM backend.
2008-09-02 22:29:23 -07:00
Vladimir Vukicevic
628b27d198
Indentation sanity fixes; no code changes.
2008-09-02 22:29:23 -07:00
Vladimir Vukicevic
2a520bab9f
Split NativeThumb.cpp into NativeThumb.cpp and NativeARM.cpp; no code changes.
2008-09-02 22:29:23 -07:00
Vladimir Vukicevic
420e72ed85
b=449526, TM: fix up ARM code generation / softfloat
2008-09-02 22:29:23 -07:00
Ginn Chen
76f8dc0daf
On x86 compilers without fastcall, simulate it when invoking traces and un-simulate it when invoking builtins (bug 452390, r=dvander).
2008-09-02 11:43:55 -07:00
David Anderson
ceb2e8139c
Build fixes for MSVC 7.1 and mingw (bug 451881, patch from neil@parkwaycc.co.uk).
2008-09-02 10:28:14 -07:00
David Anderson
b6b115b496
Fix for building on FreeBSD (bug 452315, patch from Jeremy Lea).
2008-09-02 10:21:41 -07:00
David Anderson
1be49b5c2e
Use mmap() instead of valloc() in nanojit, abort on mprotect() failure (bug 451946, patch+r from Asko Tontti).
2008-09-02 10:15:26 -07:00
Jesse Ruderman
5663d9166a
Turn NANO_DIE macro into NanoAssertFail function so that it shows up in stack traces. Having it appear in stack traces makes it clear the exit was due to an assertion failure rather than a real crash. Followup to bug 452674.
2008-08-28 19:07:49 -07:00
David Anderson
6ab07e371a
Merge.
2008-08-28 17:28:36 -07:00