Commit Graph

942 Commits

Author SHA1 Message Date
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