File tree Expand file tree Collapse file tree 1 file changed +7
-7
lines changed
Expand file tree Collapse file tree 1 file changed +7
-7
lines changed Original file line number Diff line number Diff line change @@ -3032,6 +3032,7 @@ do { \
30323032 if (i == 0 ) {
30333033 StoreBifResult (4 , Op1 );
30343034 }
3035+ ires = big_size (Op1 );
30353036 goto big_shift ;
30363037 }
30373038 } else if (is_big (Op2 )) {
@@ -3047,7 +3048,6 @@ do { \
30473048
30483049 OpCase (i_bsl_jIssd ):
30493050 GetArg2 (2 , Op1 , Op2 );
3050-
30513051 do_bsl :
30523052 if (is_small (Op2 )) {
30533053 i = signed_val (Op2 );
@@ -3073,16 +3073,12 @@ do { \
30733073 StoreBifResult (4 , Op1 );
30743074 }
30753075 }
3076- Op1 = small_to_big (ires , tmp_big );
3077- #ifdef TAG_LITERAL_PTR
3078- Op1 |= TAG_LITERAL_PTR ;
3079- #endif
3076+ ires = 1 ; /* big_size(small_to_big(Op1)) */
30803077
30813078 big_shift :
30823079 if (i > 0 ) { /* Left shift. */
3083- ires = big_size ( Op1 ) + (i / D_EXP );
3080+ ires += (i / D_EXP );
30843081 } else { /* Right shift. */
3085- ires = big_size (Op1 );
30863082 if (ires <= (- i / D_EXP ))
30873083 ires = 3 ; /* ??? */
30883084 else
@@ -3101,6 +3097,9 @@ do { \
31013097 goto lb_Cl_error ;
31023098 }
31033099 TestHeapPreserve (ires + 1 , Arg (1 ), Op1 );
3100+ if (is_small (Op1 )) {
3101+ Op1 = small_to_big (signed_val (Op1 ), tmp_big );
3102+ }
31043103 bigp = HTOP ;
31053104 Op1 = big_lshift (Op1 , i , bigp );
31063105 if (is_big (Op1 )) {
@@ -3123,6 +3122,7 @@ do { \
31233122 if (i == 0 ) {
31243123 StoreBifResult (4 , Op1 );
31253124 }
3125+ ires = big_size (Op1 );
31263126 goto big_shift ;
31273127 }
31283128 } else if (is_big (Op2 )) {
You can’t perform that action at this time.
0 commit comments