Fixed/simplified opASH() a bit; it wasn't preserving the sign bit in all cases, and converting the input from unsigned to signed and back again was more confusing than helpful

This commit is contained in:
Jeff 2017-03-30 14:49:49 -07:00 • committed by Jeff Parsons
commit 3f06667597
3 changed files with 49 additions and 29 deletions

View file

@ -113,8 +113,8 @@ function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a)
Vc.call(this,this.a))},function(a,b){this.c(this.a,Vc.call(this,this.b(b)))},function(a,b){a=Vc.call(this,this.b(this.a));this.c(this.a,a);b&&this.c(b,a)},function(a,b){this.c(b,Oc.call(this,this.b(this.a)))},function(a,b){this.c(b,this.a)},function(a,b){this.c(this.a,Oc.call(this,this.b(b)))},function(a,b){a=Oc.call(this,this.b(this.a));this.c(this.a,a);b&&this.c(b,a)},function(a,b){this.c(b,Uc.call(this,this.b(b),this.b(this.a),!0))},function(a,b){this.c(b,Uc.call(this,this.b(b),this.a,!0))},function(a,
b){this.c(this.a,Uc.call(this,this.b(b),this.b(this.a),!0))},function(a,b){this.c(this.a,this.c(b,Uc.call(this,this.b(b),this.b(this.a),!0)))},function(a,b){this.c(b,Uc.call(this,this.b(b),this.b(this.a)));this.c(b+1&15,this.o)},function(a,b){this.c(b,Uc.call(this,this.b(b),this.a));this.c(b+1&15,this.o)},function(a,b){this.c(this.a,Uc.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,Uc.call(this,this.b(b),this.b(this.a))));this.c(b+1&15,this.o)},function(a,b){a=S.call(this,
this.b(b),0,this.b(this.a));0>a||(this.c(b,a),this.c(b+1&15,this.o))},function(a,b){a=S.call(this,this.b(b),0,this.a);0>a||(this.c(b,a),this.c(b+1&15,this.o))},function(a,b){a=S.call(this,this.b(b),0,this.b(this.a));0>a||this.c(this.a,a)},function(a,b){a=S.call(this,this.b(b),0,this.b(this.a));0>a||this.c(this.a,a)},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=S.call(this,c,a,this.b(this.a));0>c||(this.c(b,c),this.c(b+1&15,this.o))},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=S.call(this,
c,a,this.a);0>c||(this.c(b,c),this.c(b+1&15,this.o))},function(a,b){a=this.b(b);b=this.b(b+1&15);b=S.call(this,b,a,this.b(this.a));0>b||this.c(this.a,b)},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=S.call(this,c,a,this.b(this.a));0>c||(this.c(b,this.c(this.a,c)),this.c(b+1&15,this.o))},function(a,b){var c=(this.a<<14>>14)%256;if(c){a=this.b(b);var d=a>F?-(J-a):a;0<c?(35<=c?(d=0>d?G:0,c=F):(d=d*Math.pow(2,c)%G,c=G-Math.pow(2,35-c)),a<=F?a+c>F&&(this.g|=131072):a-c<=F&&(this.g|=131072)):d=-35>=
c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+J:d;this.c(b,a)}},function(a,b){if(a=(this.a<<14>>14)%36){var c=this.b(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%J+Math.trunc(c/Math.pow(2,36-a));this.c(b,c)}},function(a,b){if(a=(this.a<<14>>14)%256){var c=this.b(b),c=0<a?36<=a?0:c*Math.pow(2,a)%J:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.c(b,c)}},function(a,b){a=0;var c=this.b(b);if(c){for(;c<G;)a++,c*=2;M(this,this.a)}this.c(b+1&15,a)},function(a,b){if(a=(this.a<<14>>14)%256){var c,d=this.b(b),e=this.b(b+
c,a,this.a);0>c||(this.c(b,c),this.c(b+1&15,this.o))},function(a,b){a=this.b(b);b=this.b(b+1&15);b=S.call(this,b,a,this.b(this.a));0>b||this.c(this.a,b)},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=S.call(this,c,a,this.b(this.a));0>c||(this.c(b,this.c(this.a,c)),this.c(b+1&15,this.o))},function(a,b){if(a=(this.a<<14>>14)%256){var c,d,e=this.b(b);0<a?(d=F,c=e<G?0:G,35>a&&(c+=e*Math.pow(2,a)%G,d=G-Math.pow(2,35-a)),e<G?e+d>F&&(this.g|=131072):e-d<G&&(this.g|=131072)):-35>=a?c=e<G?0:F:(c=Math.trunc(e/
Math.pow(2,-a)),e>F&&(d=J-Math.pow(2,36+a),c+=d));this.c(b,c)}},function(a,b){if(a=(this.a<<14>>14)%36){var c=this.b(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%J+Math.trunc(c/Math.pow(2,36-a));this.c(b,c)}},function(a,b){if(a=(this.a<<14>>14)%256){var c=this.b(b),c=0<a?36<=a?0:c*Math.pow(2,a)%J:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.c(b,c)}},function(a,b){a=0;var c=this.b(b);if(c){for(;c<G;)a++,c*=2;M(this,this.a)}this.c(b+1&15,a)},function(a,b){if(a=(this.a<<14>>14)%256){var c,d=this.b(b),e=this.b(b+
1&15);if(0<a){var f=d;if(36<=a){if(0<d&&d<G||d>F&&d<I)this.g|=131072;if(71<=a){if(0<e&&e<G||e>F&&e<I)this.g|=131072;d=0}else d=e*Math.pow(2,a-35)%G,c=G-Math.pow(2,70-a),f<=F?e+c>F&&(this.g|=131072):e-c<=F&&(this.g|=131072);e=0;f>F&&(d+=G,e+=G)}else d=d*Math.pow(2,a)%G+Math.trunc(e%G/Math.pow(2,35-a)),e=e*Math.pow(2,a)%G,c=G-Math.pow(2,35-a),f<=F?f+c>F&&(this.g|=131072):(f-c<=F&&(this.g|=131072),d+=G,e+=G)}else-36>=a?(e=-72>=a?d>F?I:0:Math.trunc(d%G/Math.pow(2,-a-35)),d<=F?d=0:(d=I,e+=G)):(c=d>F?J-
Math.pow(2,36+a):0,e=Math.trunc(e%G/Math.pow(2,-a))+d%G*Math.pow(2,35+a)%G,d=Math.trunc(d/Math.pow(2,-a))+c,d>F&&(e+=G));this.c(b,d);this.c(b+1&15,e)}},function(a,b){if(a=(this.a<<14>>14)%72){var c=this.b(b),d=this.b(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%J+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%J+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%J+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%J+Math.trunc(d/Math.pow(2,72-a)));this.c(b,c);this.c(b+1&15,d)}},function(a,
b){if(a=(this.a<<14>>14)%256){var c=this.b(b),d=this.b(b+1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%J,d=0):(c=c*Math.pow(2,a)%J+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%J):-36>=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%J,c=Math.trunc(c/Math.pow(2,-a)));this.c(b,c);this.c(b+1&15,d)}},O,function(a,b){a=this.b(b);this.c(b,this.b(this.a));this.c(this.a,a)},function(a,b){a=!1;for(var c=this.b(b),d=c/E|0,c=c&C;!a;)this.c(c,this.b(d)),