more checks for NaN/errors before performing operations

This commit is contained in:
Jeff Wang 2019-10-02 22:46:26 -04:00
parent 23e49a0405
commit 5a3dc2337d

View File

@ -84,8 +84,10 @@ void process_cmd(char cmd){
} break; } break;
////////// //////////
case '=':{ case '=':{
StackPtr--; if (!decn_is_nan(&stack(STACK_X))){
copy_decn(&stack(STACK_X), &stack(STACK_Y)); StackPtr--;
copy_decn(&stack(STACK_X), &stack(STACK_Y));
}
} break; } break;
////////// //////////
case 'c':{ case 'c':{
@ -93,14 +95,19 @@ void process_cmd(char cmd){
} break; } break;
////////// //////////
case '<':{ //use as +/- case '<':{ //use as +/-
negate_decn(&stack(STACK_X)); if (!decn_is_nan(&stack(STACK_X))){
negate_decn(&stack(STACK_X));
}
} break; } break;
////////// //////////
case 'r':{ //use as swap case 'r':{ //use as swap
dec80 tmp; if (!decn_is_nan(&stack(STACK_X))){
copy_decn(&tmp, &stack(STACK_X)); dec80 tmp;
copy_decn(&stack(STACK_X), &stack(STACK_Y)); copy_decn(&tmp, &stack(STACK_X));
copy_decn(&stack(STACK_Y), &tmp); copy_decn(&stack(STACK_X), &stack(STACK_Y));
copy_decn(&stack(STACK_Y), &tmp);
}
} break;
} break; } break;
////////// //////////
} //switch(cmd) } //switch(cmd)