Commit Graph

1105 Commits

Author SHA1 Message Date
Andreas Gal
d7b82eb0c4 b=586387; Problem with Typed Float32 Arrays and canonicalizeNaNs() / LIR_cmovd; r=nnethercote/edwsmith 2010-08-14 10:52:08 -07:00
Nicholas Nethercote
771a1472de Fix Windows bustage for bug 584275. r=me.
--HG--
extra : convert_revision : 50ab6cea085bd699f13ebac102756531e8c0640f
2010-08-05 18:09:23 -07:00
Nicholas Nethercote
3b63712fcf Bug 584275 - nanojit: preparation for adding many more access regions. r=edwsmith.
--HG--
extra : convert_revision : 64ae262a02031c276f58c3a4c71cfd92828f883f
2010-08-05 17:37:42 -07:00
Andreas Gal
00c966f8e3 Bug 580534 - implement LIR_cmovd. r=nnethercote.
--HG--
extra : convert_revision : 186f3f376d662375ff9182cf0b470468335ef442
2010-08-03 20:39:21 -07:00
William Maddox
356836d1b5 Bug 570276 - Fix code generation for address load on SPARC (r=leon.sha+)
Special case code for LEA formerly fell through to the general case,
resulting in generation of redundant "junk" code.

--HG--
extra : convert_revision : 639cf2aa65734e43194b8b62f4c95f462c918cf0
2010-07-29 19:10:27 -07:00
Nicholas Nethercote
bdd9c63662 Bug 582191 - nanojit: fix formatImm[IQ] bogons. r=edwsmith.
--HG--
extra : convert_revision : ce704edcab9d092627ad29e60efc0991ee2682e0
2010-07-28 17:06:14 -07:00
Edwin Smith
06143a5acb Fixed initialization of Assembler::nHints (bug 581702, r=nnethercote+)
--HG--
extra : convert_revision : d8dccd548db136e88ea1a8be0627088b6a78cc78
2010-07-28 11:24:25 -04:00
Jacek Caban
f504194cd6 Bug 569819 - Fix nanojit compilation failure on mingw-w64. r=edwsmith
--HG--
extra : convert_revision : 85b2cf98c09be7ba490c85f2ffcf8dd38cfa4929
2010-07-28 13:44:01 +02:00
Jacek Caban
ea42f28b0d Bug 573341 - Wrong AVMPLUS_ALIGN16 declaration on mingw r=dvander
--HG--
extra : convert_revision : bb90a35c6382aeb519a789e1f018d52000a4d6fe
2010-07-28 13:40:37 +02:00
Jacek Caban
37c9c36c36 Bug 569819 - Fix nanojit compilation failure on mingw-w64. r=edwsmith 2010-08-02 11:59:50 +02:00
Jacek Caban
29531fc3b8 Bug 573341 - Wrong AVMPLUS_ALIGN16 declaration on mingw r=dvander 2010-08-02 11:58:44 +02:00
Nicholas Nethercote
c591888546 Bug 552812 - nanojit: factor out AccSet differences into TM and TR (take 3). r=edwsmith.
--HG--
extra : convert_revision : 962916dc590fe3f55d15f00ac91b13e4ec4409a2
2010-07-27 21:28:02 -07:00
Jacek Caban
ea46c1e1f9 Bug 573341 - Wrong AVMPLUS_ALIGN16 declaration on mingw r=dvander 2010-06-27 01:28:10 +02:00
Jacek Caban
f6ed6f676b Bug 569819 - Fix nanojit compilation failure on mingw-w64. r=edwsmith 2010-06-25 15:59:05 +02:00
Nicholas Nethercote
da850ce005 Backout the last four patches for bug 552812 due to downstream Windows assertion failures on TM. Argh.
--HG--
extra : convert_revision : eb7dfecbdf2fd32d78673e10eb2289129966f6ce
2010-07-25 23:42:51 -07:00
Nicholas Nethercote
21a5ae4df8 Try to force MSVC to pack bit-fields properly, argh.
--HG--
extra : convert_revision : 09d69292e4ade9c77ce88f32e1840bd06071e2d6
2010-07-25 19:49:58 -07:00
Nicholas Nethercote
e82972a6ac Bug 552812 - nanojit: factor out AccSet differences into TM and TR (take 2). r=edwsmith.
--HG--
extra : convert_revision : 7e11df137a4d30bd8411cf3b35cb26a003188f86
2010-07-25 19:17:39 -07:00
Nicholas Nethercote
5272ac360b Backout last three patches for bug 552812 due to further Windows breakage, sigh.
--HG--
extra : convert_revision : 1909331461436f43dad16a22e502f332e7ad3488
2010-07-25 18:39:41 -07:00
Nicholas Nethercote
3013ab8162 Groan, fix syntax error.
--HG--
extra : convert_revision : 8dd52f216fd251c7ae0d250f64afdfade4892fbc
2010-07-25 18:32:15 -07:00
Nicholas Nethercote
c179be068c Fix Windows bustage from bug 552812.
--HG--
extra : convert_revision : bd1e180e8836da69c228bac3bb8e268020ccaba4
2010-07-25 18:27:49 -07:00
Nicholas Nethercote
208a727c1b Bug 552812 - nanojit: factor out AccSet differences into TM and TR. r=edwsmith.
--HG--
extra : convert_revision : 2d211c925ffabfc0a5dcc6ba9a6eaf02a32b47d4
2010-07-25 18:20:42 -07:00
Edwin Smith
0e52940a92 Fix Sparc bustage (just add unreachable return statement)
--HG--
extra : convert_revision : 27cc2c4bbcb9b103bed3c5803078f7d7ee58f599
2010-07-24 10:01:18 -04:00
Edwin Smith
e90975d4e7 Whitespace cleanup.
--HG--
extra : convert_revision : 1781d2187c43ed282a061efb7d945eafefed5ef9
2010-07-21 10:33:02 -04:00
Jacek Caban
2655d7d62e Bug 569819 - Fix nanojit compilation failure on mingw-w64. r=edwsmith 2010-06-25 15:59:05 +02:00
Jacek Caban
618928dd9b Bug 573341 - Wrong AVMPLUS_ALIGN16 declaration on mingw r=dvander 2010-06-27 01:28:10 +02:00
Ginn Chen
1e8dd96599 Bug 580549 NativeSparc.cpp failed to compile r=leon.sha 2010-07-22 15:07:07 +08:00
Nicholas Nethercote
e56dfae6ff Bug 574969 - add LIR_qasd / LIR_dasq. r=edwsmith.
--HG--
extra : convert_revision : 06774ab0e7e002b4fe6f4091a5dd59904fb6b080
2010-07-20 21:04:21 -07:00
Nicholas Nethercote
d49c159b29 Bug 578290 - nanojit: fold constant 64-bit integer expressions. r=stejohns.
--HG--
extra : convert_revision : 94aa179ec87c6a6c0949f1a6b2b6134074eef29b
2010-07-13 18:10:42 -07:00
Nicholas Nethercote
588cb18fca Fix ARM bustage for bug 553962. r=me.
--HG--
extra : convert_revision : bb74ad1990fc0299c107c6d44a04c3682e8cb9fe
2010-07-04 19:45:53 -07:00
Nicholas Nethercote
a901c621f3 Bug 553962 - nanojit: finish adding get/set methods for CallInfo::_typesig. r=edwsmith.
--HG--
extra : convert_revision : cfbed237877f0939423d9c1ac591c0a7edb5b0c0
2010-07-04 19:39:09 -07:00
Eli Friedman
c7b36cb9f6 Bug 576363 - Qualify accesses to dependent base in js. r=nnethercote.
--HG--
extra : convert_revision : 5c5cacef53d6a42f6226636c0fa71c13e428b52f
2010-07-04 19:12:15 -07:00
Nicholas Nethercote
dac3291064 Bug 513514 - nanojit: make hint() faster. r=edwsmith.
--HG--
extra : convert_revision : f95a1857f8fec03f4fa24c84cbb6222c4820c5a7
2010-06-30 18:32:06 -07:00
Jacob Bramley
3af66d7d8e Trivial tweak to the Vim modeline in LIRopcode.tbl. [No bug] [r=me]
--HG--
extra : convert_revision : 104c02bf846011a7e6e9792ecc5e5cb6e92f09fd
2010-06-24 13:18:04 +01:00
Jacob Bramley
05a5c664a9 Fix LIR_std2f implementation on ARM. [Bug 572679] [r=vlad]
--HG--
extra : convert_revision : 6998a52045d0d573bd78e2dd1bfd41c0a86309b0
2010-06-18 11:24:53 +01:00
Rick Reitmaier
4a6eddac30 Bug 571407 - Changes to enable JIT in Symbian build of Flash Player (r+rreitmai)
ICache flush support for symbian

--HG--
extra : convert_revision : d992fed9f916b09916e4fead7ae39022a53d2881
2010-06-16 18:16:08 -07:00
William Maddox
fc75018411 Bug 571430 - Allow for NumSavedRegs == 0 on SPARC (r=rreitmai+)
--HG--
extra : convert_revision : fb015a561f6b65104930a723e800c21a2d66e1bd
2010-06-16 14:29:43 -07:00
Jacob Bramley
e8fc94e3eb Add LIR_(add|sub|mul)jovi support to the ARM back-end. [Bug 571202] [r=nnethercote]
--HG--
extra : convert_revision : b9c6f319cf9132680e27ffe7af1d783f6d8fa4c9
2010-06-14 15:42:46 +01:00
Robert Sayre
27b5a3b6fb Merge mozilla-central to tracemonkey.
--HG--
rename : dom/indexedDB/IDBCursorRequest.cpp => dom/indexedDB/IDBCursor.cpp
rename : dom/indexedDB/IDBCursorRequest.h => dom/indexedDB/IDBCursor.h
2010-06-30 11:54:20 -07:00
Nicholas Nethercote
a35fc574ae Bug 569753 - nanojit: clean up ExprFilter::ins2(). r=edwsmith.
--HG--
extra : convert_revision : 27e933f40d36603509b75ca2e7361616781528fe
2010-06-10 17:12:53 -07:00
Edwin Smith
b919fbbe12 Bug 562152 - Remove typedef LInsp (r=nnethercote+)
--HG--
extra : convert_revision : 63a0a36e4637218160b42646feb9a18b408d8671
2010-06-10 11:22:18 -04:00
Jacob Bramley
07c75d07c8 Include signal.h to fix breakage in 49982fe529dd. [Bug 570895] [r=me]
--HG--
extra : convert_revision : 0a8efeddb4d97553a877a1cfd11b3e4b9fb54098
2010-06-09 09:30:23 +01:00
Jacob Bramley
310af12a78 Extend the inappropriately-limited FSTD and FSTS range. [Bug 570694] [r=nnethercote]
--HG--
extra : convert_revision : 3c64a9386e7f8784d25b4eb13243f621b0fcded8
2010-06-09 09:10:19 +01:00
Gary Kwong
552a27cb06 Bug 570895 - Consider replacing abort() in AvmAssertFail. r=gal.
--HG--
extra : convert_revision : 49982fe529ddf0ff473495547e2df3024e35ee76
2010-06-09 00:20:03 -07:00
Gary Kwong
a24cddb1b8 Assertion failure message tweak, from bug 570895. r=gal.
--HG--
extra : convert_revision : c7e84fb8ce712a6ea79fce04cd8cb5d8fcf2f647
2010-06-09 00:13:54 -07:00
Jacob Bramley
ad5b2f77aa Fix ARM's asm_str implementation for large, negative offsets. [Bug 561977] [r=me]
--HG--
extra : convert_revision : 8dc1d2f7c39783cb1683dee2b3caac28d7121ff7
2010-06-07 11:58:07 +01:00
Gary Kwong
2c2bdd0503 Bug 570895: Replace abort() in AvmAssertFail. r=gal 2010-06-09 14:38:37 +08:00
Nicholas Nethercote
e2a11770ff Fix typo in patch for bug 527512, and add a missing case. r=gal.
--HG--
extra : convert_revision : eb43593410b935717be223a37dec993a30472073
2010-06-06 20:22:48 -07:00
Steven Johnson
38b8e72eb0 Bug 527512 - ExprFilter missing trivial optimizations for ugt, ult (r=edwsmith,nnethercote)
--HG--
extra : convert_revision : 9bdc25ecdb1b5b3b6a81705df3ae573b812bc990
2010-06-03 10:35:26 -07:00
Leon Sha
4e076c0bf0 http://www.dancertheband.com/ does not work correct with flash player 10.1 beta for solaris sparc. r=edwsmith
--HG--
extra : convert_revision : ccfc1e56c6f7dcf68719329cf1615aa5bfc4e3a5
2010-06-02 13:13:24 +08:00
Jacek Caban
07bde20ee7 Bug 573341 - Wrong AVMPLUS_ALIGN16 declaration on mingw r=dvander
--HG--
extra : rebase_source : 1ae22e8abd799137e661f34b0c8346006a511617
2010-06-27 01:28:10 +02:00
William Maddox
48541b0117 Support arithmetic with branch on overflow on MIPS -- bug 560926 (r=rreitmai+)
Adds support for MIPS target lacking in earlier patch.
Bug 560926 - Add support for arithmetic with branch on overflow
We simply extend the existing logic for exit-on-overflow in the
manner done for other targets.  There appear to other issues
with oveflow detection in general that are not dealt with here.

--HG--
extra : convert_revision : 3a62ee8cc7d6caf63cbd594f71814c8e8f3d4f7a
2010-05-27 18:00:45 -07:00
William Maddox
7cfb42d6ca Fix missed renaming in NativeMIPS.cpp in patch for bug 560926 (r=rreitmai+)
Bug 560926 - Add support for arithmetic with branch on overflow

--HG--
extra : convert_revision : 8c6a61c935172f56eb7c660b476a5516cd3f04ab
2010-05-27 12:53:35 -07:00
Rick Reitmaier
ada62b6b46 Fix winmo macro madness breakage
Extra parenthesis needed in order to correctly resolve macros;
  NativeARM.cpp(2040) : error C2105: '--' needs l-value

--HG--
extra : convert_revision : 6f625518afb60a49717b27ba482ace08309cff12
2010-05-27 11:29:47 -07:00
Rick Reitmaier
4e416a5a6b Bug 568393 - msvc 2008 compiler generates bad code for CallInfo static initializer (r+wmaddox)
ugh

--HG--
extra : convert_revision : f7c07b8ca96fc2ef1179171f05e69b841ac2865f
2010-05-26 18:02:31 -07:00
William Maddox
f42400812e Bug 560639 - Reinstate CodeAlloc::size(const CodeList*) recently removed as "dead" (r=edwsmith+ nnethercote+)
--HG--
extra : convert_revision : aec5028a49e90c4be18de667a2807896e3b689ad
2010-05-26 17:29:16 -07:00
Rick Reitmaier
8b54029d42 Bug 567900 - Enable JIT verbose output for release debugger builds (r+stejohns)
Somewhere along the line -Dverbose=jit was disabled for all non-debug builds.
This means that we can no longer see jit generated verbose output unless we
build a debug build, which is very inconvenient.

Also, the define NJ_VERBOSE_DISABLED was introduced without a corresponding
ifdef around the JIT verbose flags of the shell which leads one to erroneously
assume that methods are not being JIT'd (no output visible).

As the verbose mechanism in the JIT adds less than 2% to overall size (measured
on xcode built x86-32 shell) , recommend adding it back.

--HG--
extra : convert_revision : 367041a278adc74f7db6c9a13166f1700b133ec7
2010-05-26 11:08:55 -07:00
Edwin Smith
ab48828f96 Bug 560926 - Add support for arithmetic with branch on overflow (r= nnethercote+ edwsmith+ wmaddox+) 2010-06-06 17:57:30 -07:00
Edwin Smith
0674774a9a Constant folding for LIR_i2q and ui2uq (bug 560106 r=gal+). 2010-06-06 16:40:41 -07:00
Jacob Bramley
bd578c73f1 Remove stack-size limitations in asm_spill for ARM. [Bug 561977] [r=rreitmai] 2010-06-05 20:12:54 -07:00
Nicholas Nethercote
3c1d859013 Backout the last NJ-to-TM merge (TM revisions b44daa2c0503 to b3167f8f9459, inclusive) because it caused lots of oranges. r=me. 2010-06-03 21:28:18 -07:00
Steven Johnson
1f9d87d23f Bug 527512 - ExprFilter missing trivial optimizations for ugt, ult (r=edwsmith,nnethercote)
--HG--
extra : convert_revision : 9bdc25ecdb1b5b3b6a81705df3ae573b812bc990
2010-06-03 10:35:26 -07:00
Leon Sha
b892e48516 http://www.dancertheband.com/ does not work correct with flash player 10.1 beta for solaris sparc. r=edwsmith
--HG--
extra : convert_revision : ccfc1e56c6f7dcf68719329cf1615aa5bfc4e3a5
2010-06-02 13:13:24 +08:00
William Maddox
2166eb30ff Support arithmetic with branch on overflow on MIPS -- bug 560926 (r=rreitmai+)
Adds support for MIPS target lacking in earlier patch.
Bug 560926 - Add support for arithmetic with branch on overflow
We simply extend the existing logic for exit-on-overflow in the
manner done for other targets.  There appear to other issues
with oveflow detection in general that are not dealt with here.

--HG--
extra : convert_revision : 3a62ee8cc7d6caf63cbd594f71814c8e8f3d4f7a
2010-05-27 18:00:45 -07:00
William Maddox
4600797689 Fix missed renaming in NativeMIPS.cpp in patch for bug 560926 (r=rreitmai+)
Bug 560926 - Add support for arithmetic with branch on overflow

--HG--
extra : convert_revision : 8c6a61c935172f56eb7c660b476a5516cd3f04ab
2010-05-27 12:53:35 -07:00
Rick Reitmaier
cfc75a5c0d Fix winmo macro madness breakage
Extra parenthesis needed in order to correctly resolve macros;
  NativeARM.cpp(2040) : error C2105: '--' needs l-value

--HG--
extra : convert_revision : 6f625518afb60a49717b27ba482ace08309cff12
2010-05-27 11:29:47 -07:00
Rick Reitmaier
af0bc4b0af Bug 568393 - msvc 2008 compiler generates bad code for CallInfo static initializer (r+wmaddox)
ugh

--HG--
extra : convert_revision : f7c07b8ca96fc2ef1179171f05e69b841ac2865f
2010-05-26 18:02:31 -07:00
William Maddox
5ccfce19cc Bug 560639 - Reinstate CodeAlloc::size(const CodeList*) recently removed as "dead" (r=edwsmith+ nnethercote+)
--HG--
extra : convert_revision : aec5028a49e90c4be18de667a2807896e3b689ad
2010-05-26 17:29:16 -07:00
Rick Reitmaier
80f3c51d06 Bug 567900 - Enable JIT verbose output for release debugger builds (r+stejohns)
Somewhere along the line -Dverbose=jit was disabled for all non-debug builds.
This means that we can no longer see jit generated verbose output unless we
build a debug build, which is very inconvenient.

Also, the define NJ_VERBOSE_DISABLED was introduced without a corresponding
ifdef around the JIT verbose flags of the shell which leads one to erroneously
assume that methods are not being JIT'd (no output visible).

As the verbose mechanism in the JIT adds less than 2% to overall size (measured
on xcode built x86-32 shell) , recommend adding it back.

--HG--
extra : convert_revision : 367041a278adc74f7db6c9a13166f1700b133ec7
2010-05-26 11:08:55 -07:00
Edwin Smith
3b4ffa11f5 Bug 560926 - Add support for arithmetic with branch on overflow (r=nnethercote+ edwsmith+ wmaddox+)
Patch to add 'j' (branch) variants of the exit-on-overflow instructions,
plus a few dependents:

32-bit:
LIR_addjovi
LIR_subjovi
LIR_muljovi

64-bit:
LIR_subq
LIR_addjovq
LIR_subjovq

--HG--
extra : convert_revision : 68023362b0833433a0bc0c3b5af8994894488f33
2010-05-26 14:03:14 -04:00
Edwin Smith
d50c384574 Constant folding for LIR_i2q and ui2uq (bug 560106 r=gal+)
Helps x64 and ppc64.

--HG--
extra : convert_revision : e6ce59a07d5fd363fadc242a93a2677f6fc69989
2010-05-24 09:13:11 -04:00
Jacob Bramley
551c835b39 Remove stack-size limitations in asm_spill for ARM. [Bug 561977] [r=rreitmai]
--HG--
extra : convert_revision : 09f682eb3100993e4f15758f209601c033d5ca3c
2010-05-24 11:30:06 +01:00
Edwin Smith
603d2206c9 whitespace hygiene
--HG--
extra : convert_revision : f96ca24c15235dba3282e3649356b6a7acf5d2e2
2010-05-19 20:54:10 -04:00
Edwin Smith
09708715d6 Bug 560570 - ARM arch detection for RVCT compiler (r=stejohns+)
--HG--
extra : convert_revision : c79dae5ba88018f3cfa06621064008a21e39e49f
2010-05-19 20:52:18 -04:00
Edwin Smith
c79040e8f9 Bug 560571 - Symbian RVCT 2.2 compiler requires explicit cast to (const void*) for &k (r=stejohns+)
--HG--
extra : convert_revision : 304ec7713fbecaf65b4c9f09b14f204b3416daf3
2010-05-19 20:47:56 -04:00
Edwin Smith
edbad98461 Bug 566759 - Remove LOpcode aliases once they are no longer used (r=nnethercote+)
--HG--
extra : convert_revision : 6aa777cb07a63862372399ac78a6f39b573c6dc1
2010-05-19 09:34:07 -04:00
Edwin Smith
c798b8b4d1 Minor PPC tweak from bug 560370, plus a few comments
--HG--
extra : convert_revision : ae4877e82cdda675f7fc8610f4cef987ea9a9c8b
2010-05-18 20:00:33 -04:00
Robert Sayre
13c247559e Merge mozilla-central to tracemonkey 2010-05-17 13:55:37 -04:00
Nicholas Nethercote
439c3c6f87 Bug 552592 - nanojit: split TMFLAGS=assembly in two. r=edwsmith.
--HG--
extra : convert_revision : 0ab7614fb5140f304020d000789eff6b63ecdef6
2010-05-11 19:14:51 -07:00
Nicholas Nethercote
d398416088 Bug 563277 - nanojit: ignore dead guards in StackFilter. r=edwsmith.
--HG--
extra : convert_revision : c6024514710ad40128e05ba004b4db0c2a302862
2010-05-11 18:52:03 -07:00
Nicholas Nethercote
7a0c7aaa29 Bug 562597 - nanojit: more LOpcode-related renamings. r=edwsmith.
--HG--
extra : convert_revision : 96391e53a0b48bd53fa98db68da86f76a55e9bd0
2010-05-11 17:14:20 -07:00
Edwin Smith
4d87ad98e3 Bug 559972 - Rename LOpcode enums in NativeMIPS.cpp (r=nnethercote+)
--HG--
extra : convert_revision : 24782e879b70fc00120a5697ff978d0c16a8aeab
2010-05-10 20:10:47 -04:00
Edwin Smith
07a068ef9b Bug 559974 - Rename LOpcode enums in NativeSparc.cpp (r=nnethercote+)
--HG--
extra : convert_revision : 83cb4cee2b4db69a8d8b2616e062c01156b87dee
2010-05-10 20:09:05 -04:00
Edwin Smith
045c28aa3f Bug 559973 - Rename LOpcode enums in NativePPC.cpp (r=nnethercote+)
--HG--
extra : convert_revision : d65d7a51c661d49274ee4707eb0b478f6e7b6ec9
2010-05-07 08:39:56 -04:00
Nicholas Nethercote
2a2687bf69 ARM bustage fix for bug 564080. r=me.
--HG--
extra : convert_revision : 98eb4dff32af55697aac78f7c89c4a3b56cb01fa
2010-05-06 16:18:51 -07:00
Nicholas Nethercote
93fba42127 Bug 564080 - nanojit: merge LIR_alloc[iq]. r=edwsmith.
--HG--
extra : convert_revision : bf229d93127ae64ffa62f4c872c2319bbc4dc59b
2010-05-06 16:13:11 -07:00
Edwin Smith
279460658a Bug 559971 - Rename LOpcode enums in NativeARM.cpp (r=nnethercote+ f=jacob.bramley+)
--HG--
extra : convert_revision : f7a0d7ffe0739ce2e2b2c259d7b8d3d9b77f78d5
2010-05-06 09:32:06 -04:00
Edwin Smith
8b43bd915d Change the PPC isS14 macro to an inline function (bug 560370 r=rreitmai+)
Fixes two problems:
1. macro incorrectly referred directly to "bd" instead of its argument "i"
2. logic wasn't 64-bit safe (incorrect 32/64bit comparison)

--HG--
extra : convert_revision : 9b65dfcae9f7d70788806afc4f3b989e32c601fe
2010-05-05 10:47:36 -04:00
Edwin Smith
1024e26d57 Bug 559975 - Rename LOpcode enums in NativeX64.cpp (r=nnetercote+)
Also includes a few renames of qxor -> xorq from other files.
(qxor was missing from the rename script).

--HG--
extra : convert_revision : b49dd62330e017769dfdea9c87a74698179c7f45
2010-04-29 15:34:40 -04:00
Ginn Chen
1ffaf7e1a0 Bug 562001 nanojit failed to compile on Solaris x86_64 r=gal 2010-04-28 17:36:04 +08:00
Nicholas Nethercote
3b86611069 Bug 560712 - nanojit: give immediates names when printing LIR. r=edwsmith.
--HG--
extra : convert_revision : 53522168256873ff92a5cf1668d3ef8e65a87f38
2010-04-27 18:40:51 -07:00
Edwin Smith
842b6c912b Rename LIR opcodes in Nativei386.cpp (bug 559977 r=nnethercote+)
--HG--
extra : convert_revision : 62e0adc4d69e1d2246ee9336afd555ee3f6766a0
2010-04-27 20:05:58 -04:00
Nicholas Nethercote
42510923d1 Fix ARM bustage caused by bug 555255. r=me.
--HG--
extra : convert_revision : fd2a6c5b65a0f4fd4e09fa0366a626e97850f39b
2010-04-27 15:41:17 -07:00
Nicholas Nethercote
03c04769c0 Bug 518267 - nanojit: some instructions not printed with TMFLAGS=assembly. r=edwsmith.
--HG--
extra : convert_revision : 118664704b902286b9b21a35e3a998685980066a
2010-04-27 15:31:31 -07:00
Edwin Smith
3394d89548 Rematerialize add(r,imm) operations on x64 and i386 (bug 555255 r=nnethercote+)
This patch detects when LEA can be used to rematerialize an add operation
instead of spilling it.  Sub and lsh could be supported too, if it would
help (see notes in canRematLEA()).

--HG--
extra : convert_revision : e5db9525afbc8bd03444c66d8ded420f4696dce8
2010-04-27 10:00:27 -04:00
Edwin Smith
583621bba8 Rematerialize ALU+IMM operations on ARM (bug 555255 r=jbramley+)
The ARM backend already supported single-instruction folding of immediates into
add/sub/and/or/xor instructions.  This patch enables the same instructions to
be rematerialized without spilling them.

--HG--
extra : convert_revision : c5fca9078e37d7d79f66cf6023fcbf707d11d57b
2010-04-27 09:38:27 -04:00
Nicholas Nethercote
756a66a5ce Follow-up to bug 561182: move CseFilter methods together. r=rreitmai.
--HG--
extra : convert_revision : 8632b24edcba6eb08afe5002611fbea782d1f435
2010-04-26 21:59:48 -07:00
Nicholas Nethercote
05c2de7b5b Bug 561182 - nanojit: merge LInsHashSet into CseFilter. r=rreitmai.
--HG--
extra : convert_revision : 5a687f2ed6268d873a011f13da912ebb8bfb03e4
2010-04-26 21:59:32 -07:00
Edwin Smith
069062a9f7 Fixed whitespace drift.
--HG--
extra : convert_revision : e2770eef5208a99078207d999ba2d84346651db8
2010-04-26 10:53:32 -04:00
Rick Reitmaier
f4ea1cc587 fix PPC debug-only build breakage
--HG--
extra : convert_revision : 6b99983c6b88ce05809d05e4e2b24836a1c2724e
2010-04-23 10:49:32 -07:00
Rick Reitmaier
d61f88a164 Bug 560370 - PPC cmov handling logic incorrect (r+edwsmith)
On PPC the cmov logic is generating incorrect code due to
instruction and register lifetimes are not being correctly
handled.

This patch mirrors the code used on the x86 which was fixed
a while back to address this issue.  See bug 535705

--HG--
extra : convert_revision : 8047bc5db3b14ddc3588378c7f4c6fef76de7d98
2010-04-23 09:24:00 -07:00
Edwin Smith
e927108ae7 Bug 560578 - canRemat() and asm_restore() should agree (r=nnethercote+)
Added comments clarifying the contract between canRemat() and asm_restore(),
and fixed the ARM, MIPS, PPC, and Sparc backends so canRemat() doesn't
return true for instructions that asm_restore() doesn't handle.

--HG--
extra : convert_revision : f4d4243db4cf3b8d7149012d5503c5441058f58e
2010-04-23 10:26:12 -04:00
Edwin Smith
3633f63957 Revert rename bustage in NativePPC.cpp (bug 560160 r=me)
--HG--
extra : convert_revision : cc043e6b70383762025e239896cbd70d5ece8697
2010-04-22 13:04:24 -04:00
Nicholas Nethercote
0ca74ddded Bug 560160 - nanojit: rename LOpcode-related names. r=edwsmith.
--HG--
extra : convert_revision : 234af92683dad306d03911975b0e9afc57936cf5
2010-04-21 19:34:46 -07:00
Nicholas Nethercote
42b15a4cbf Avoid compiler warnings. r=me.
--HG--
extra : convert_revision : a33a817354bebed12877a0e6ab4c42729ec3c8c7
2010-04-21 18:28:35 -07:00
Edwin Smith
c25f6733ba Rename LIR opcodes once more, using new C convention (bugs 555633, bug 557877 r=nnethercote+)
This patch un-does the intel names that have been used so far within
nanojit, updates the aliases in LIR.h, and fixes the names used in
lirasm tests.

Host VM's will need to run rename_LIR.pl from bug 504506 if they have
already begun using the intel names; aliases are not provided for them in LIR.h.

--HG--
extra : convert_revision : 2787af46329c72796954ddb68f53326f0de661e4
2010-04-21 21:13:17 -04:00
Chris Dearman
48ef0e6d48 Bug 558813 - [MIPS] running tamarin as3/Vector/ acceptance testcases produces an assert (r=edwsmith)
--HG--
extra : convert_revision : 25449d23ba02a99a502c06ffc0565f87376a3e7e
2010-04-21 09:16:18 -04:00
Chris Dearman
e3c19557be Bug 551165 - Unable to compile MIPS nanojit backend (r=edwsmith+)
--HG--
extra : convert_revision : 7d9635ba36b214f707cf426b7b414cde99738048
2010-04-21 09:14:14 -04:00
Nicholas Nethercote
dba392140f Bug 559719 - nanojit: tweak LIns::lastWord. r=edwsmith.
--HG--
extra : convert_revision : 3f81d8a5f0515f891eac0c8821370d4309787483
2010-04-20 17:51:50 -07:00
Edwin Smith
560294a5e2 Bug 559969 - Rename LOpcode enums in Assembler.cpp/h (r=nnethercote+)
--HG--
extra : convert_revision : ccc892912055b7da35ff7a8bafa7c3cd0bc060d5
2010-04-19 20:42:41 -04:00
Edwin Smith
a0649c37c8 Remove unnecessary clearReg() calls from asm_restore(). (bug 555255 r=nnethercote+)
This patch does two things, neither of which should affect generated code.

1. In case LIR_alloc in gen(), replace inlined code with a call to evict(),
since evict() does exactly what the inlined code does.

2. In backends, remove ins->clearReg() or deprecated_markAsClear() calls from
asm_restore(), since evict() takes care of the same thing as soon as
asm_restore() returns.

--HG--
extra : convert_revision : e89860f89d85e6d0a4ef538c5f19f0ae55e360da
2010-04-19 20:28:22 -04:00
Edwin Smith
4f9e499d66 Removes NJ_PROFILE and related code, since it's all dead. (bug 560300 r=nnethercote+)
Host VM's should remove #define NJ_PROFILE and NJ_PROFILE_DISABLED

--HG--
extra : convert_revision : 02bc396c1339e7ed0ac17f77b074d5edcb1517f7
2010-04-19 20:22:56 -04:00
Edwin Smith
c87d59e4d3 Move canRemat() from Assembler.cpp to each backend. (bug 555255 r=nnethercote+)
--HG--
extra : convert_revision : c12082c4c489498061d8b505f7dae1bf626d849f
2010-04-19 20:16:09 -04:00
Nicholas Nethercote
a9ce7676df Fix compiler warning. r=me.
--HG--
extra : convert_revision : 4baf0bdb53dfdc39a1a6b1cf9ee78c0c42be8a6f
2010-04-18 16:15:25 -07:00
Edwin Smith
fa948f7ddd Bug 559968 - Rename LOpcode enums in LIR.cpp. r=nnethercote.
--HG--
extra : convert_revision : 34789fd8cb4bd5f3d3eed6b6a44ae1a158620f8d
2010-04-18 16:05:53 -07:00
Edwin Smith
b0c60c31a3 Rename LIR opcodes in LIR.h (bug 557887, r=nnethercote+)
Mechanically renamed using rename_LIR.pl, backed out the alias patch hunks,
and updated the pointer-sized aliases to use the new opcodes instead of
PTR_SIZE macros using old opcodes.

--HG--
extra : convert_revision : 944433df375988c65313759440ed1de757ab4ea8
2010-04-16 19:20:24 -04:00
Nicholas Nethercote
6503b1d42e Bug 558814 - nanojit: handle const conditions for LIR_jt/LIR_jf. r=edwsmith.
--HG--
extra : convert_revision : b57f94e988db5cdd0278bd3b1eca1a664bfcf937
2010-04-15 16:48:07 -07:00
Edwin Smith
b73e463983 Rename LIR_stw->stl2w, stb->stl2b, add aliases (bug 555633, r=nnethercote+)
--HG--
extra : convert_revision : 2eae88cd4859b3f82d003f1cfd42153c45a14bdf
2010-04-15 09:15:53 -04:00
Edwin Smith
327efa9892 Only perform the disp32->disp8 addressing mode optimization on valid instructions (bug 543440 r=dvander+)
RIP-relative addressing uses mod 00 "disp32" encoding, but mod_disp32() assumes
all instructions passed in can be optimized to disp8 encoding if the actual
displacement is 8-bit.  This is invalid for mode 00 modes, including RIP addressing.

mod_disp32() can still do the right thing in the other arm of its branch; this
patch removes the assert and tightens the check for the disp8 case.

--HG--
extra : convert_revision : b534b9289ca8a111f16fbf0b0711b5277be440f4
2010-04-14 16:22:14 -04:00
Edwin Smith
f2aa7bdbe7 Lower ARM MIPS NJ_MAX_STACK_ENTRY to 1024 as a workaround for asm_spill() limitations (bug 556175)
Fixme's added, explaining why.

--HG--
extra : convert_revision : 7d102db403b76739c69fbf1e5b1e35bdbeb4b3c6
2010-04-14 09:15:56 -04:00
Edwin Smith
b87fa948ab Use AvmAssertFail instead of NanoAssertFail to implement NanoAssert (Bug 473188 r=gal+)
--HG--
extra : convert_revision : 7c682d3836f7587225a2f8dce73039d10a972318
2010-04-13 15:41:15 -04:00
Edwin Smith
6e97b7399c Add support for LIR_stb on PPC (bug 558597 r=leon.sha pending)
Pushing this in advance of review; It appears to run fine in the tamarin-redux
acceptance suite, and i tested it also by stopping in asm_store32() with dbx,
and disassembling the generated STB instruction.  Looked fine to the naked eye.

--HG--
extra : convert_revision : 1e26f7116dc4435461b56900454b02fa821a9e54
2010-04-13 14:39:49 -04:00
Edwin Smith
c527a87132 Allow i386 JCC() instruction to emit patchable jumps (bug 557705 r=me, nnethercote=pending)
TR needs to support patching, the assert is too restrictive.
Support target == 0 with an explicit check instead of letting
it just work by accident.

--HG--
extra : convert_revision : 5f12e1da6b7f3b76116ccf2ffd878969e103f557
2010-04-13 11:42:42 -04:00
Edwin Smith
577472fd60 Raise ARM and MIPS NJ_MAX_STACK_ENTRY to 4096 (bug 556175 r=Jacob.Bramley+)
--HG--
extra : convert_revision : 7a068ed450bb6ba47d8a5ab2586487a1b37ba8db
2010-04-13 11:14:49 -04:00
Edwin Smith
176d926d8c Implement LIR_stb on PPC32/64 (bug 558597 r=rreitmai+)
Patch also fixes an invalid assert that required load/store
displacements to be multiples of 4 on PPC.

--HG--
extra : convert_revision : e2a7f626b35179db953469ea94cdb39d16b10f7c
2010-04-12 21:27:19 -04:00
Rick Reitmaier
4634603bd4 Bug 557706 - Allow LogControl printf method to be overridden (r=nnethercote,edwsmith)
Issues with prior patch not compiling with tamarin due to missing vtable,
so make sure printf isn't available unless verbose is enabled.

--HG--
extra : convert_revision : 147e02ce8790c9e09f4c91b29b1bcc5d16862ee1
2010-04-12 11:51:00 -07:00
Nicholas Nethercote
3a4a3d6046 Bug 557991 - nanojit: remove dead code from CodeAlloc. r=edwsmith.
--HG--
extra : convert_revision : 335ca0fff2a7ac451d0fa1c11594f6dbacada648
2010-04-08 18:33:21 -07:00
Edwin Smith
e802c1ac07 Suppress unused arg warnings for bug 557843 (r=me.)
Took the opportunity to add a few asserts to ensure the implit RHS
register for x86 shift instructions is always ECX.

--HG--
extra : convert_revision : 6baccc0354a87ece92ccff6ff138986bf4d19a2c
2010-04-08 12:58:49 -04:00
Rick Reitmaier
8e2e572dea Bug 557706 - Allow LogControl printf method to be overridden (r=nnethercote)
if LogControl.printf is made a virtual method then consumers of nanojit can
more easily control how the output is managed.

--HG--
extra : convert_revision : 7fa9ad2e2d57661e4290df0b3902fd809f19d768
2010-04-07 09:54:30 -07:00
Mike Hommey
ce41784187 Bug 542460 - Remove executable permission on source files [r=ted.mielczarek] 2010-05-06 09:32:50 +02:00
Nicholas Nethercote
76b149adce Bug 557705 - nanojit: clean up codegen of i386 jumps. r=edwsmith.
--HG--
extra : convert_revision : ec93bc283385c4e19bfbfda1aa1ecf94aef932ec
2010-04-06 20:09:32 -07:00
Nicholas Nethercote
6968bfc5ba Windows bustage fix for bug 557483. r=me.
--HG--
extra : convert_revision : 3607404c8ab95af0866fd073ed5d6d51322198b6
2010-04-06 16:04:32 -07:00
Nicholas Nethercote
07fe6e6c98 Bug 557483 - nanojit: convert i386 codegen macros to functions. r=edwsmith.
--HG--
extra : convert_revision : 4062fae8baf26ee9fcdf5c8d1125b2a1fa806515
2010-04-06 15:55:43 -07:00
Nicholas Nethercote
fcb616851a Bustage fix for bug 545295. r=me.
--HG--
extra : convert_revision : 54edfaf7f89566f86822155e90d43ec6198228c4
2010-04-05 18:12:38 -07:00
Edwin Smith
8e9b1ee383 CodeAlloc changes to eliminate dependency on 4K system page size (bug 545295 r=edwsmith+)
--HG--
extra : convert_revision : f1734da5dae9a73cf52692fc8dd72c25d0f12a14
2010-04-05 16:17:01 -04:00
Edwin Smith
e802b90f31 Patch to clean up MSVC analysis warnings (bug 551690, r=edwsmith+ nnethercote+)
(pushing for Bill Maddox)
The following appear to be false positives.  The patch adjusts the code in a
meaning-preserving way such that the analysis warnings no longer appear.  My
best guess is that the analysis does not take into account the discretenes of
integer arithmetic in analyzing relational operators.

nanojit/Assembler.cpp(2004)
nanojit/Nativei386.cpp(1214)

Here, an outer definition is indeed hidden, but it is dead at this point, and
the code is correct as it stands.  Stylistically, however, the hiding should be
avoided, as in the patch.

nanojit\LIR.cpp(671)

--HG--
extra : convert_revision : fdff643a3c793c57150d0e8b48bc1f12383d939e
2010-04-05 11:25:55 -04:00
Nicholas Nethercote
a0e29d2b63 Fix ARM bustage for bug 555633. r=me.
--HG--
extra : convert_revision : be4f098b6cb32f2c2787ef2842402f2b39e0925d
2010-03-31 15:14:28 -07:00
Nicholas Nethercote
d701093eb8 Bug 555633 - nanojit: rename opcodes in LIRopcode.tbl. r=edwsmith.
--HG--
extra : convert_revision : e09eec330c04cfbf3da745635c67f2fc3fee6c28
2010-03-31 15:07:50 -07:00
Nicholas Nethercote
1125c9c311 Bug 541030 - nanojit: isconstq() should only succeed for 64-bit integer. r=rreitmai.
--HG--
extra : convert_revision : b8fea2e57673f9f2d4e864870d73ee294cabd4bd
2010-03-28 16:49:42 -07:00
Ignore Bukanov
3b3376853d Bug 555338 - preprocessor define to tell when rdtsc is available. r=nnethercote.
--HG--
extra : convert_revision : 673444e26f4810744ff252ee113fd7f0f3d5a7c9
2010-03-28 15:31:53 -07:00
Edwin Smith
df5c06910a Cleaned up trailing whitespace (r=me)
--HG--
extra : convert_revision : 6ee8bcd6813ffe98061b8d09317f58138bb41bb7
2010-03-24 20:41:39 -04:00
Edwin Smith
c9c6e235ea replace AvmAssert with NanoAssert everywhere (bug 554549 r=nnethercote+)
Also, remove unused AvmAssert, AvmAssertMsg, and AvmDebugLog from nanojit/avmplus.h

--HG--
extra : convert_revision : aeb486b1d227244e42a9dbc7a9f0a5ba9d84b67b
2010-03-24 20:35:15 -04:00
Edwin Smith
b37a609658 Remove now-dead LIR_iaddp/qaddp/addp (bug 542016, r=nnethercote+)
Simplified the code in CseFilter::ins2() as well since addp was
the only non-cse-able binary operator.

--HG--
extra : convert_revision : 0f21522488fc4a7e3efeaad5c77b6bb96ca0f0fc
2010-03-24 20:08:06 -04:00
Nicholas Nethercote
70b954205a Bug 553518 - nanojit: avoid 'test r,r' where possible on i386. r=edwsmith.
--HG--
extra : convert_revision : ec4d959e1cc9337cf30a08bf75b246516a1728a4
2010-03-24 15:34:34 -07:00
Nicholas Nethercote
fac2089f95 Follow-up assertion failure fix for bug 517910. r=me.
--HG--
extra : convert_revision : dfaf13aa4c5928bcd871ac7f279657c87de7b0f9
2010-03-23 15:49:12 -07:00
Nicholas Nethercote
1b27c99df0 Bug 517910 - NJ: add more alias-set annotations to LIR so as to improve CSEing of loads. r=edwsmith.
--HG--
extra : convert_revision : 26cbea5a2acdcc6156b4a72b0c40c0d675f69571
2010-03-23 15:05:47 -07:00
Edwin Smith
02b8d2a422 Fix PPC bustage for bug 507089 (r=me)
--HG--
extra : convert_revision : 0a31a14aba7746483fe8ff6b8ab287e1784de846
2010-03-23 15:09:52 -04:00
Nicholas Nethercote
db95288852 ARM bustage fix for bug 507089. r=me.
--HG--
extra : convert_revision : d04d39fadbb5f075d4f60fc7b73d106a39331453
2010-03-22 12:18:47 -07:00
Jeff Walden
76ae0775d7 Fix ARM-only typo in nanojit merge (NB: NOT being simultaneously merged to nanojit-central out of expediency). r=sparky 2010-03-22 11:48:22 -07:00
Nicholas Nethercote
070e390dac Bug 507089 - TM/nanojit: prepare to add get/set methods for CallInfo::_argtypes. r=edwsmith.
--HG--
extra : convert_revision : 55f02d7976752940a9f328d440fb6601ee2dc9f4
2010-03-21 19:47:02 -07:00
Nicholas Nethercote
5d4adc4b29 Bug 552374 - nanojit: clean up asm_spill() and friends a little. r=edwsmith.
--HG--
extra : convert_revision : 5806c6f3bf1257fc3142f5eb8718e01071bcbb35
2010-03-21 15:08:03 -07:00