Assert on bogus always-exit guards.
authorAndreas Gal <gal@mozilla.com>
Wed, 13 Aug 2008 12:01:06 -0700
changeset 18131 80b14ab9032b6a6448bdbc7621cf2a6f3112fb58
parent 18130 c92d3a022fc45ad8f4b2959303996d634d790548
child 18132 bc8a7ed3e87a6367f38f2f56a06375ce086bd1be
child 18133 3c864e120a1e999fa905d81c5ab61995c6f97971
push id1452
push usershaver@mozilla.com
push dateFri, 22 Aug 2008 00:08:22 +0000
treeherdermozilla-central@d13bb0868596 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
milestone1.9.1a2pre
Assert on bogus always-exit guards.
js/src/nanojit/LIR.cpp
--- a/js/src/nanojit/LIR.cpp
+++ b/js/src/nanojit/LIR.cpp
@@ -832,16 +832,19 @@ namespace nanojit
 	{
 		if (v == LIR_xt || v == LIR_xf) {
 			if (c->isconst()) {
 				if (v == LIR_xt && !c->constval() || v == LIR_xf && c->constval()) {
 					return 0; // no guard needed
 				}
 				else {
 					// need a way to EOT now, since this is trace end.
+#ifdef JS_TRACER
+				    AvmAssert(0);
+#endif				    
 					return out->insGuard(LIR_x, out->insImm(1), x);
 				}
 			}
 			else {
 				while (c->isop(LIR_eq) && c->oprnd1()->isCmp() && 
 					c->oprnd2()->isconstval(0)) {
 				    // xt(eq(cmp,0)) => xf(cmp)   or   xf(eq(cmp,0)) => xt(cmp)
 				    v = LOpcode(v^1);