Commit Graph

7208 Commits

Author SHA1 Message Date
Nicholas Nethercote
1543355a8e Update nanojit-import-rev stamp. 2009-11-17 15:56:35 +11:00
Edwin Smith
18ad0c911d Fix assertion failure injected by X64 verbose code patch (bug 520712 r=dvander+)
When we test the size of an offset, we have to do it after underrunProtect
or else a jump can be inserted which then invalidates the instruction selection.

--HG--
extra : convert_revision : 9b249328236ffec433abb961c0737a82f437c7d4
2009-11-16 14:22:26 -05:00
Nicholas Nethercote
a8fa693ddd Bug 520712 - nanojit: print assembly code for X64 backend with TMFLAGS=assembly. r=edwsmith.
--HG--
extra : convert_revision : bc99b0483e324920fa4c55235d1f9da58eeebcaf
2009-11-16 13:14:39 +11:00
Luke Wagner
e33f55be7a Bug 529147 - fix flipped numSideExitsBefore assertion (r=dvander) 2009-11-16 17:45:50 -08:00
David Anderson
003e66b4ad Use INS_CONSTOBJ instead of INS_CONSTWORD for kshape guard (bug 528048, r=gal). 2009-11-16 18:44:58 -05:00
Jeff Walden
926066f46d Bug 520890 - obj_getOwnPropertyDescriptor nests object locks. r=jorendorff 2009-11-09 16:16:28 -08:00
Luke Wagner
e00c281f26 Bug 528870 - fix double-slurping rebase error (r=dvander) 2009-11-16 10:14:57 -08:00
Blake Kaplan
f0cd93b989 Bug 461170 - Detect when typeof is applied to an expression before constant folding so we correctly throw unbound name exceptions from the folded expression. r=brendan 2009-11-06 18:27:17 +01:00
Nicholas Nethercote
8b890f0ae6 Bug 465582: the TM-specific part. r=dvander. 2009-11-16 10:03:30 +11:00
Nicholas Nethercote
e586febe59 Update nanojit-import-rev stamp. 2009-11-16 08:18:55 +11:00
Nicholas Nethercote
97e38dea03 Bug 518242 - NJ: Remove insSkip and supporting machinery. r=graydon.
--HG--
extra : convert_revision : d0134ea858d0e34c389868a59aac7085451865b4
2009-11-13 16:18:40 +11:00
Graydon Hoare
ec80c24575 Bug 528320 - Improve warning-handling on windows, r=rreitmai.
--HG--
extra : convert_revision : c1dd9d0db4cf07210025b69e852f2ea43275a759
2009-11-12 15:07:31 -08:00
Julian Seward
6de060464c Bug 517883 - make TM fragment entry- and exit-profiling work on ARM, r=vlad.
--HG--
extra : rebase_source : 5ce347fc1855009b2e71a67ab4df69ee03e7d65b
extra : convert_revision : e133153691ce2daf3eb72bba7762191b61b7afcb
2009-11-12 14:30:36 -08:00
Nicholas Nethercote
ce6dd615de Bug 513865 - nanojit: make LirReader::read() clearer and faster. r=gal.
--HG--
extra : convert_revision : d78bd673c8652d17489559744f4a221c78811286
2009-11-13 09:26:26 +11:00
Nicholas Nethercote
3cdf300b3f Bug 527874 - nanojit: add and remove some uses of findSpecificRegForUnallocated(). r=rreitmai.
--HG--
extra : convert_revision : 8a61bb2085985eb84772ca1ad924eee5b7fe544f
2009-11-13 09:23:14 +11:00
Edwin Smith
9eada54d27 Fix NativeARM; missed one file when backing out registerAllocTmp (r=me)
--HG--
extra : convert_revision : ec94ce9d044ee358a65c259a6151ce660122f813
2009-11-12 08:39:32 -08:00
Edwin Smith
d7a89e77b5 Add LIR_jtbl instruction, and patch up lirasm to remove LIR_ji (bug 465582 r=nnethercote+, rreitmai+)
new opcode: LIR_jtbl.  jtbl takes a uint32_t index and a table of label
references (LIns**), representing a jump to one of the labels.

the index must be in range (range checking is not included in the opcode).

the table is allocated in memory at least as long lived as the LIR; this is
accomplished by doing the allocation from the same Allocator used by LirBuffer.

In the x86 backend, this is implemented with a simple jmp [R*4+ADDR] where ADDR
is the address of the table.  I added a new dataAllocator (Allocator&)
parameter to Assembler, which is used for allocating data along with code (data
& code have same lifetime).  The x86 backend allocates the final table of
addresses from this allocator and embeds the pointer to the table in code.

In other backends more than one instruction must be used due to limited range
of the constant part of the addressing mode (ppc, arm), or non-support for
full-range pc-relative indexing (x64, ppc64).

Anyone generating LIR code for use with LIR_jtbl must also generate a
LIR_regfence instruction after each label reachable by a forwards edge
from LIR_jtbl.  This is to workaround the register allocator's inability
to merge register states between 2 or more pre-existing targets.  LIR_regfence
is not required for backwards edges.

--HG--
extra : convert_revision : ee709eaaa30f720f77ab863ba4c9e6d10d69982b
2009-11-11 14:38:12 -05:00
Rick Reitmaier
90792e48c5 Silence win64 compiler gripe about unused var (r+me)
--HG--
extra : convert_revision : 6a40f9bbeae25cc7c79ce34db8226ab0ff786c57
2009-11-11 09:12:57 -08:00
Luke Wagner
12ec57f335 Bug 520636 - sideExits holds dangling pointer on failed compilation (r=dvander) 2009-11-13 15:47:08 -08:00
Luke Wagner
931c1a14c6 Quiet the hounds of JS_REQUIRES_STACK 2009-11-13 15:24:25 -08:00
Luke Wagner
5edaaf4c39 Bug 517174 - trace js_Invoke calls from natives (r=dvander) 2009-11-12 18:34:24 -08:00
Jason Orendorff
c26c16cb0c Bug 528414 - JS_IsRunning can be wrong. r=brendan.
--HG--
extra : rebase_source : 4fca5efd5f558c1b64b0e86580d2c42af7e61e34
2009-11-13 09:24:12 -06:00
Bob Clary
da3344ac86 Bug 528384 - Intermittent failure in js1_8_1/trace/regress-451673.js 2009-11-13 05:26:33 -08:00
Bob Clary
797b78af45 Bug 528284 - js1_5/extensions/regress-371636.js - random failure for debug windows. 2009-11-13 05:26:33 -08:00
Bob Clary
88b75ddfa2 Bug 524734 - js1_8_1/trace/regress-451974-01.js, regress-451974-02.js fix random failure. 2009-11-13 05:26:33 -08:00
Andreas Gal
ac3a0faa92 Remove reserve doubles and objects lists and instead waive the GC quota to avoid failing in LeaveTree (508140, r=dvander). 2009-11-12 16:01:56 -08:00
Jason Orendorff
45cb4ee721 Bug 523998 - Add assertions to detect cases where objects were not touched by shape regeneration. r=dmandelin.
--HG--
extra : rebase_source : 6a71b143bdb82a81e00c082df5dc4c15198ad5d6
2009-11-12 16:50:12 -06:00
Igor Bukanov
dd905004ad bug 527803 - avoiding unnecessary js_AddRoot. r=brendan 2009-11-12 23:13:25 +01:00
Igor Bukanov
86e549290f bug 522867 - eliminating the local root check on the fast path of the GC allocator. r=brendan,gal 2009-11-12 12:53:25 +01:00
Jeff Walden
e53d0c2e48 Backed out changeset 2fe1a3d6e672, enough philosophically-vexing orange that I'm unwilling to adjust all the tests without discussion (or, alternately, leave it in place until morning). 2009-11-12 00:57:18 -08:00
Jeff Walden
152d62d222 Bug 523846 - Assignments to a property that has a getter but not a setter should not throw a TypeError per ES5 (at least not until strict mode is supported). r=brendan
--HG--
extra : rebase_source : 7d47eb44d21f17bfa11aeadca2ff980336315eca
2009-11-10 18:03:41 -08:00
David Anderson
88c1b301bc Backed out changeset 193b41b37d17 2009-11-11 23:03:17 -08:00
David Anderson
d9058229c3 Don't guard on scope chains that have a call object and a block object (bug 523793, r=brendan,dmandelin). 2009-11-11 19:22:32 -08:00
Nicholas Nethercote
caae636a76 Test case for bug 527288. r=edwsmith. 2009-11-11 18:17:55 +11:00
Nicholas Nethercote
030a983a02 Update nanojit-import-rev stamp. 2009-11-11 15:39:46 +11:00
Graydon Hoare
53519f8859 Bug 527178 - Improve valid-displacement checks, r=edwsmith, r=dvander.
--HG--
extra : rebase_source : b95743173b293bd4a2a54b37124d4e85cb16d425
extra : convert_revision : eadf0b1a3fd0bd28303b12b905eb94a09a2ade1b
2009-11-10 14:55:35 -08:00
Nicholas Nethercote
c8fb8e9279 Bug 527288 - TM: "Assertion failure: m != TT_INT32 || isInt32(*vp), at
../jstracer.cpp" with for, for...each.  r=edwsmith.

--HG--
extra : convert_revision : 8f59c1429621a0ebb1cab43c638e926df463d3a1
2009-11-11 11:47:39 +11:00
Rick Reitmaier
7fc8791eda Silence winmo compiler gripe about unused var (r+me)
--HG--
extra : convert_revision : f2504bf688652c6730b49dca93da149f419bb165
2009-11-10 14:49:12 -08:00
Luke Wagner
fcbd8df95a Bug 527147 - flat lambdas' parents differ between recording and trace (r=dmandelin) 2009-11-09 10:57:39 -08:00
Jacob Bramley
12362fb71d Update nanojit-import-rev stamp. 2009-11-10 09:16:55 +00:00
Jacob Bramley
9d5d377b24 Fix LIR_ov for LIR_mul on ARM. (bug 521161, r=gal)
--HG--
extra : convert_revision : 4d16a7956f99c889899f35fbd0ad3a9fb0c12e0d
2009-11-10 08:19:04 +00:00
Nicholas Nethercote
0a26c2fbaf Bug 515309 - nanojit: kill reservations in the ARM backend. r=Jacob.Bramley.
--HG--
extra : convert_revision : 271317c774639b9604d3e9ab9d67d615b5166c64
2009-11-10 17:27:09 +11:00
Nicholas Nethercote
8b9cbc6e8b Bug 525437 - clean up LIR_call. r=edwsmith.
--HG--
extra : convert_revision : 2f6b3b6eedb27044cc7699c923d4220dd169b823
2009-11-10 14:12:18 +11:00
Nicholas Nethercote
f49548f101 Bug 515310 - nanojit: kill reservations in the x64 backend. r=dvander
--HG--
extra : convert_revision : 5ca7d17649581013e1f275d6e2d26693f1b5c55d
2009-11-09 17:15:24 +11:00
Graydon Hoare
3d858cb714 Bug 527139 - Fix lirasm's use of integer-divide on non-intel platforms, r=rreitmai.
--HG--
extra : convert_revision : f5bbb9569c737865a7ff88dde0fb370fe2862c01
2009-11-06 16:01:11 -08:00
Graydon Hoare
56de82afc0 Bug 525412 - remove the nonsensical 'no fastcall' check in lirasm, r=dvander.
--HG--
extra : convert_revision : 280b05e48279a2dfa1226915ad8e96f0ef3a19ff
2009-11-06 15:44:00 -08:00
David Mandelin
5ee0760ca7 Bug 519363 debugging followup: strip diagnostic instrumentation, r=lw 2009-11-09 16:57:47 -08:00
David Mandelin
354c79f502 Bug 525028 followup: fix build bustage on non-tracing-enabled builds, no_r=me 2009-11-09 16:42:38 -08:00
David Mandelin
f011cf1b36 Bug 525028: adding test case missed in previous commit, r=dvander 2009-11-09 15:38:08 -08:00
David Mandelin
f381a3d5ed Bug 525028: don't set args object properties from trace, r=dvander 2009-11-09 15:36:41 -08:00