Commit Graph

485 Commits

Author SHA1 Message Date
Jacob Bramley
a0fdb46274 Don't use ARM's MOVW and MOVT instructions to write to the PC. (487595, r=vladimir) 2009-06-23 11:13:54 +01:00
Jacob Bramley
92fa4891a8 Clean up ARM's SET macro and correct a few condition codes. (488845, r=vladimir) 2009-06-23 11:12:22 +01:00
Jacob Bramley
4bc4cb2c09 Clean up asm_branch and correct the use of condition flags on VFP conditions. (489583, r=vladimir) 2009-06-23 10:36:36 +01:00
Jacob Bramley
257161448b Fix crash on ARM caused by spilling registers in asm_mmq. (495239, r=vladimir) Follow-up: Reveals (or creates) some failures documented in bug 499889. 2009-06-23 09:36:53 +01:00
Nicholas Nethercote
7595f38896 Remove unused field 'parent' from class LabelMap (bug 499400, r=gal). 2009-06-23 14:11:09 +10:00
Nicholas Nethercote
ae3ac6a734 Remove unused isCse() and LirBuffer() args (bug 499260, r=edwsmith). 2009-06-22 14:48:16 +10:00
Nicholas Nethercote
a5db26a0e2 Fix assertion failure in trace-test.js with TRACEMONKEY=verbose (bug 499154, r=graydon). 2009-06-22 10:48:36 +10:00
nnethercote@mozilla.com
015cf5504c remove LIR_calli and LIR_fcalli (492478, r=edwsmith,jorendorff). 2009-06-19 10:20:26 +01:00
Andreas Gal
887e6a5f47 Remove NativeThumb.cpp (bug 486535, hg totally sucks). 2009-06-19 09:47:16 +01:00
Jacob.Bramley@arm.com
4b490c9a33 Remove remaining obsolete ARM Thumb code (486535, r=gal). 2009-06-19 09:45:52 +01:00
Andreas Gal
ac13e56ffd Backed out changeset 1b5584a4eba4. Accidentally committed some unreviewed changes. 2009-06-19 09:42:34 +01:00
Jacob.Bramley@arm.com
7ecc26f135 Remove remaining obsolete ARM Thumb code (486535, r=gal). 2009-06-19 09:37:38 +01:00
Nicholas Nethercote
c4b939cd8f Bug 494639 - NJ: fix numerous LIR memory management problems, r=graydon 2009-06-16 14:01:31 -07:00
Vladimir Vukicevic
a678e18942 b=503205; [arm] stop hitting bogus assertion in nPatchBranch; r=crashy 2009-07-08 16:46:57 -07:00
Nicholas Nethercote
de28e96de9 NJ: fix load opcode checking, r=graydon. 2009-06-15 12:04:06 -07:00
Andreas Gal
213c5e12a5 Remove obsolete ARM/Thumb code (no bug). 2009-06-13 20:05:28 -05:00
Andreas Gal
e53b949cbf Cleanup expression filter in LIR.cpp (497935, r=edwsmith). 2009-06-13 18:04:08 -05:00
Graydon Hoare
6a44d94f4f Bug 484142 - Standalone LIR assembler, r=jorendorff. 2009-06-12 11:33:08 -07:00
Andreas Gal
659a7a9b6c Implement oracle-based speculative fmod/fdiv/fmul demotion (474443, r=graydon,dvander). 2009-06-12 08:33:32 -07:00
Andreas Gal
a0182c819c Correctly disable conditional moves on platforms that do not support them (497455, r=graydon). 2009-06-10 15:21:10 -07:00
ikezoe@clear-code.com
2e4dab02a1 LIns::isOp2() lacks qjoin (496851, r=gal,edwsmith). 2009-06-08 15:04:19 -07:00
Nicholas Nethercote
96dd8702a9 Bug 495028. nanojit: add opcode checks to all LIR get/set methods. r=edwsmith 2009-06-06 12:58:11 -04:00
Andreas Gal
c70c0c7270 Bug 495396 - TM: missing early return in Nativei386 when generating LEA. r=edwsmith 2009-06-01 16:24:59 -04:00
Julian Seward
a61d112402 Bug 494157 - nanojit debug output uses inconsistent output channels. r=jorendorff. 2009-05-26 13:14:41 -05:00
Andreas Gal
3f8dfa9e52 LIR_alloc doesn't get emitted correctly for stack args on ARM (494510, r=vlad). 2009-05-22 16:44:18 -07:00
Graydon Hoare
e4863bdb1c Bug 494084 - TM: Lower maximum LIR skip size further, r=gal. 2009-05-21 18:44:37 -07:00
Graydon Hoare
daefd27739 Bug 493821 - NJ: Minimal fix to sign-extension in imm64, r=gal. 2009-05-19 22:01:24 -07:00
Graydon Hoare
606ab3ebdf Backout alignment-breaking patches for Bug 493821. 2009-05-19 20:26:31 -07:00
Graydon Hoare
4298aed9d3 Bug 493821 - Followup to ARM and SPARC native backends, to handle renaming, r=gal. 2009-05-19 18:42:11 -07:00
Andreas Gal
41689550b8 Bug 493821 - NJ: Fix sign-extension in imm64, r=graydon. 2009-05-19 18:27:01 -07:00
Robert Sayre
80463b40a5 Backout last cset. Bug 487607 is not ready yet. 2009-05-18 12:36:02 -04:00
Jacob Bramely
fe2103fafc Bug 487607 - TraceMonkey: The ARM-specific Assembler::BL method is never called. r=vlad 2009-05-18 12:23:18 -04:00
Nicholas Nethercote
c0f23c4e08 Bug 492491 - nanojit: convert some error() tests to asserts. r=edwsmith 2009-05-18 02:27:12 -04:00
Nicholas Nethercote
a03f3e7b1a Bug 492490 - nanojit: move Assembler::findVictim() from RegAlloc.cpp to Assembler.cpp 2009-05-18 02:20:59 -04:00
Nicholas Nethercote
90746fda0d Bug 490947 - nanojit: remove reservation table. r=gal,edwsmith 2009-05-18 02:15:24 -04:00
Nicholas Nethercote
6c4c7621f3 Bug 492488 - nanojit: improve handling of 64-bit constants. r=graydon 2009-05-18 01:56:25 -04:00
Nicholas Nethercote
1a33faa263 Bug 492301 - nanojit: remove some dead code. r=edwsmith 2009-05-18 01:45:46 -04:00
Nicholas Nethercote
9581ac0331 Bug 492292 - nanojit: remove duplicated LIns predicates. r=edwsmith 2009-05-18 01:38:00 -04:00
Jacob Bramley
7992b7231d Bug 490838 - TraceMonkey: Improve epilogue efficiency for ARM. r=vlad 2009-05-18 01:32:10 -04:00
Vladimir Vukicevic
f4c9d8c915 b=490296; small fixup to asm_ldr_chk -- we can do PC-relative loads as long as the offset fits in U12; r=me 2009-05-17 12:20:09 -07:00
Jacob Bramley
130a761607 b=490296; [arm] tidy misc insn generation macros; r=vlad 2009-05-17 12:11:53 -07:00
Jacob Bramley
65538201e1 b=490296; [arm] tidy ::asm_ld_imm; r=vlad 2009-05-17 12:03:33 -07:00
Jacob Bramley
297550a6e9 Bug 490296. Tidy ::asm_fop (v2). r=vlad. 2009-05-15 14:50:53 -04:00
Jacob Bramley
8533fc53a7 Bug 490296. Tidy ::asm_ldr_chk (v2). r=vlad. 2009-05-15 14:50:00 -04:00
Jacob Bramley
8b3e87f22c Bug 490296. Tidy ::asm_prep_fcall. r=vlad. 2009-05-15 14:49:10 -04:00
Jacob Bramley
03cebed3e5 Bug 490296. Tidy ::LD32_nochk. r=vlad. 2009-05-15 14:45:42 -04:00
Jacob Bramley
e2556dd40e Bug 490296. Tidy ::asm_quad. r=vlad. 2009-05-15 14:44:39 -04:00
Jacob Bramley
acbae2432b Tidy ::asm_load64. r=vlad. 2009-05-15 14:36:58 -04:00
Jacob Bramley
c2e202b6a4 Tidy ::asm_restore. r=vlad. 2009-05-15 14:35:47 -04:00
Jacob Bramley
1631cdbafa Bug 490296. Tidy ::asm_nongp_copy. r=vlad 2009-05-12 12:02:00 -04:00
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