Commit Graph

51207 Commits

Author SHA1 Message Date
Gregor Wagner
8817352356 Bug 589262 - TM: Move GCStats into separate file. r=igor 2010-08-24 18:57:14 -07:00
David Humphrey
2ef0bdedab Bug 589727 - Typed Float32 Arrays broken on mozilla-central trunk (adding a test only, the bug itself was fixed in bug 586387). r=sayrer. 2010-08-24 17:00:56 -07:00
Nicholas Nethercote
cc2da3908f Update nanojit-import-rev stamp. 2010-08-24 16:48:24 -07:00
Andreas Gal
51d7616d8c Bug 586387 - Problem with Typed Float32 Arrays and canonicalizeNaNs() / LIR_cmovd. r=nnethercote,edwsmith.
--HG--
extra : convert_revision : 2e44b58e0662f140ab49064b26dfbe15d64bc061
2010-08-24 16:31:48 -07:00
Rick Reitmaier
3f7b23a73e Bug 542891 - nanojit X64 backend errors on 64bit conditional jumps (r+nnethercote)
For conditional jumps that are larger than 32bits, invert the
branch logic so that it jumps around an unconditional 64bit
branch to the target.

--HG--
extra : convert_revision : ada7f685d84394abc19d909a021957e25043a722
2010-08-24 14:14:53 -07:00
William Maddox
9db7b3abab Bug 570214 - MIPS variable shift instructions corrupts registers (r=stejohns+)
Remove unnecessary masking of shift count.
Patch submitted by Chris Dearman (chris@mips.com).

--HG--
extra : convert_revision : 8986dba933c63d68c3b0498af53b9cdd6c99c69d
2010-08-24 13:41:15 -07:00
William Maddox
c919e07f05 Bug 587916 - Cleanup of X87 FP stack code (r=nnethercote+)
1) The "register" FST0 is the sole member of the x87regs register
class. In many places, however, the code is written so as to strongly
suggest that there might be multiple such registers. This patch removes
such conceits, replacing expressions such as (rmask(r) & x87regs)
with (r == FST0), etc.

2) prepareResultReg() has been slightly refactored to make the x87
stack fiddling a bit easier to follow and to remove a fragile assumption.

3) Do not pass the "pop" argument to asm_spill() on non-IA32 platforms.

4) Remove redundant normalization of boolean values.

5) Comment the FPU stack depth consistency check.

--HG--
extra : convert_revision : 04a3292575e6af31578914f7f3b9478b5cad2a1c
2010-08-24 11:44:17 -07:00
William Maddox
19f13a44e8 Bug 568737 - Fix incorrect overflow tests generated for MIPS (r=wmaddox+)
Patch submitted by Chris Dearman (chris@mips.com).

--HG--
extra : convert_revision : 69bf0aeb6fda2a5071bbf904d61801e94316000a
2010-08-24 11:30:07 -07:00
Chris Leary
f243aef253 Bug 587346: fix PCRE code length assertion failure. (r=gal) 2010-08-24 14:53:02 -07:00
Chris Leary
e0e2085e45 Bug 587366: regexp failure for flat text replace. (r=lw) 2010-08-24 14:46:19 -07:00
Chris Leary
1d43f99740 Bug 586530: non-list cmdline display for trace-test. (r=dmandelin) 2010-08-24 10:18:34 -07:00
Paul Biggar
5be05d883e bug 492688 - use -fomit-frame-pointer on mac. r=sayrer 2010-08-24 12:16:17 -04:00
Nicholas Nethercote
c5586f145a Bug 578216 - Make eval(json-like string) fast. r=sayrer 2010-08-24 11:50:54 -04:00
Nicholas Nethercote
188957e39b merge 2010-08-23 22:42:01 -07:00
Nicholas Nethercote
2ab58fd02d Backed out changeset 74ce80e8782e 2010-08-23 22:38:19 -07:00
Robert Sayre
2a594435e9 delete obvious comment. 2010-08-23 23:36:21 -04:00
Nicholas Nethercote
7ba153876d Bug 578216 - Make eval(json-like string) fast. r=sayrer. 2010-08-23 18:13:09 -07:00
Robert Sayre
5a3ae5c418 Merge backout. 2010-08-23 19:21:05 -04:00
Robert Sayre
c62ccd686b Backed out changeset b404ad209cb9. (Bug 587257 - Make Array.prototype.join faster. r=lw) 2010-08-23 19:20:46 -04:00
Jason Orendorff
efe79f8f4c Bug 583232 - Add rewrapping to jsapi.h. r=gal 2010-08-23 18:14:38 -04:00
Brian Hackett
5b14eb928e Accessor functions for cx->fp, bug 588978. r=lw 2010-08-23 14:36:40 -07:00
Robert Sayre
640b1f3097 Bug 587257 - Make Array.prototype.join faster. r=lw 2010-08-23 16:28:36 -04:00
Robert Sayre
b3dc580341 Merge mozilla-central to tracemonkey 2010-08-23 15:08:34 -04:00
Rob Campbell
fe68f885cb bug 587617 - Backed out changeset 6d8a749a3c57, a=#developers 2010-08-23 11:58:56 -03:00
Mihai Sucan
1a1545a42c bug 587617 - Can't select text in the output of the WebConsole, r+a=dietrich 2010-08-23 10:44:12 -03:00
Jonathan Kew
308278b403 bug 588731 - ensure correct font is selected in the DC when getting glyph metrics. r=jdaggett a=blocking2.0 2010-08-23 11:32:45 +01:00
Jonathan Kew
db6beae972 bug 580719 followup - add crashtest based on the testcase in comment 9. r=jdaggett a=test-only 2010-08-23 11:32:31 +01:00
Jonathan Kew
727aef0e67 bug 585718 - support -moz-font-feature-settings and -moz-font-language-override in nsCSSFontFaceStyleDecl::GetPropertyValue. r+a=dbaron 2010-08-23 11:32:03 +01:00
Robert O'Callahan
e1bb3d5dc8 Bug 587887. Create pref for refresh driver timer, and make it 60Hz by default. r=dbaron,a=bsmedberg 2010-08-23 21:30:08 +12:00
Robert O'Callahan
4e218eafbb Bug 581222. Ensure that the bounds for opaque native-theme backgrounds are correct. r=tn
--HG--
extra : rebase_source : 0f660f659bf4240713de6e034b4dc8bd88dfb10e
2010-08-23 21:30:08 +12:00
Robert O'Callahan
6fac80e56c Bug 581222. Draw outer box-shadows for native-themed elements using the alpha mask of the theme background as the border-shape, and disable inner box-shadows. r=dbaron
--HG--
extra : rebase_source : a9b81a5d3e09cca41a8b479a4b62b3e2df6c4354
2010-08-23 21:30:08 +12:00
Robert O'Callahan
79b8d06302 Bug 581222. Extend gfxAlphaBlur to support "spread radii". r=vlad
--HG--
extra : rebase_source : e644ae08007e52c524c3237d336441f1413f846b
2010-08-23 21:30:07 +12:00
Robert O'Callahan
747fa70120 Bug 581222. Extend gfxQuartzNativeDrawing to support non-Quartz destination surfaces. r=vlad
--HG--
extra : rebase_source : 39ddae96ed373e29852ac6ec3bb8430e96514c9b
2010-08-23 21:30:07 +12:00
Robert O'Callahan
794cc06f63 Bug 581222. Back out patch that disabled box-shadows for native-themed content elements.
--HG--
extra : rebase_source : 4685dfdddd9e0bf1ed9e5f8401d6bc73b91a5600
2010-08-23 21:30:07 +12:00
Brian Hackett
53791f1d70 Move cx->fp to cx->regs->fp, bug 588978. r=lw 2010-08-22 16:00:20 -07:00
Bob Clary
e792427e98 bug 588310 - temporarily disable js1_5/extensions/regress-336410-2.js for browser on Windows, r=brendan (NPOTB). 2010-08-22 06:29:06 -07:00
Luke Wagner
bffe91b8df Bug 589318 - guard that eval-in-function frames don't access args (r=brendan) 2010-08-21 15:50:14 -07:00
Jacek Caban
d4c88eb729 Bug 587321 - YARR landing broke mingw compilation r=cdleary 2010-08-21 12:21:24 +02:00
Gregor Wagner
562f617316 Bug 589216 - TM: fix another crossCompartment call in jsapi-tests r=jorendorff 2010-08-20 17:23:47 -07:00
Luke Wagner
376a6f85f4 Bug 588558 - fix FrameRegsIter thinko (r=waldo) 2010-08-20 16:54:58 -07:00
Jim Blandy
285b03968f Bug 438633: Give new JSScript objects lifetimes like GCThings. r=brendan
Attach script objects immediately in all JSAPI script-creating functions;
have JS_NewScriptObject simply return the already-allocated object; and
make JS_DestroyScript a no-op.

Verify that all scripts given to JSAPI script-consuming functions have
objects, or are the canonical empty script object.
2010-08-20 13:11:05 -07:00
Jim Blandy
16f4c21b3c Bug 585803: Pass TCF_NEED_MUTABLE_SCRIPT when producing scripts returned via JSAPI functions. r=brendan
All scripts produced using JSAPI functions should be able to have
JS_NewScriptObject applied to them. However, JS_CompileFile and
JS_CompileFileHandleForPrincipals fail to pass TCF_NEED_MUTABLE_SCRIPT, and
thus will occasionally return JSScript::emptyScript(); applying
JS_NewScriptObject to that causes a crash.
2010-08-20 13:11:04 -07:00
Robert Sayre
d598acd055 Merge mozilla-central to tracemonkey. 2010-08-20 10:04:58 -04:00
Ryan VanderMeulen
e2afcb8aa4 Bug 588977 - Fix MSVC warning spam by casting as floats. r=roc a2.0=joe 2010-08-20 14:45:07 +02:00
Luke Wagner
bff8e4e9d4 Bug 589015 - js_watch_set doesn't need that crazy dummy frame (r=mrbkap) 2010-08-19 18:02:17 -07:00
Nicholas Nethercote
4aa312b6f5 merge 2010-08-19 16:46:27 -07:00
Brian Hackett
2aeb294c19 Interface for JSStackFrame.argc, bug 586533. r=lw 2010-08-19 16:44:12 -07:00
Nicholas Nethercote
efa83280f0 Update nanojit-import-rev stamp. 2010-08-19 16:22:30 -07:00
Bill McCloskey
5113963733 Bug 564548: faster special cases for Math.pow, r=gal 2010-08-19 14:17:56 -07:00
Edwin Smith
8a316147b9 Bug 584935 - Speed up register iteration loops by using BSF instruction (r=nnethercote+)
Changed all the register iteration loops to use lsbSet/msbSet functions
that use fast find-first-bit intrinsics when available.  Typical loops of
the form:

  for (Register r = FirstReg; r <= LastReg; r = nextReg(r))
    if (predicate(r))
	  /* use r */

were transformed by replacing the per-iteration predicate with a single
mask calculation, then iterating through only the 1 bits in the mask:

  RegisterMask set = /* calculate predicate with bitmask ops */;
  for (Register r = lsReg(set); set; r = lsNextReg(set))
    /* use r */

Iteration can be low-to-hi with lsReg/lsNextReg, or hi-to-low with msReg/msNextReg.
Primitives are provided for 32 and 64-bit masks.  PPC and MIPS need a 64-bit
mask, for example, even on 32-bit systems.

Refactoring details:

I renamed msbSet() to msbSet32() as part of adding [msb|lsb]Set[32|64], which
affected the AccSet code trivially.

I used if (sizeof(RegisterMask) == 4) to choose between 32 and 64bit
implementations, counting on a sane compiler to strip out the provably dead
path. An alternative would be to move the definitions of lsReg() and msReg() to
NativeXXX.h, after the RegisterMask typedef, allowing backends to hardcode the
choice.  Given we have six backends and one more on the way, it seemed better
to centralize the code and also avoid more ifdefs.

I moved the definitions of msbSet/lsbSet to nanojit.h, where other such helpers
already live.  It didn't seem appropriate to keep adding to LIR.h since the
helpers will now be used in several places in nanojit.

RegAlloc::managed is now set in Assembler.cpp instead of each backend; six
lines of code replaced by one.

prevreg() was dead after these changes.  Additionally, I hand-inlined nextreg()
in the other backends, because the usage was highly specialized -- those call
sites depended on nextreg being reg+1, (or reg+2) not some generic iteration.

I removed RegAlloc::countActive() since the only case was testing countActive()
== 0, which is equivalent to activeMask() == 0.

--HG--
extra : convert_revision : c7009f5cd83ea028b98f59e1f8830a76ba27c1dd
2010-08-19 16:04:19 -04:00