so that those builtins can be used directly for the C99 NAN and INFINITY math.h macros.
Unified · Split
| @@ -5051,17 +5051,18 @@ ST_FUNC void unary(void) · 5050 unmodified lines | ||
| 5051 | 5051 | } |
| 5052 | 5052 | // special qnan , snan and infinity values |
| 5053 | 5053 | case TOK___NAN__: |
| 5054 | − vpush64(VT_DOUBLE, 0x7ff8000000000000ULL); | |
| 5054 | + n = 0x7fc00000; | |
| 5055 | +special_math_val: | |
| 5056 | + vpushi(n); | |
| 5057 | + vtop->type.t = VT_FLOAT; | |
| 5055 | 5058 | next(); |
| 5056 | 5059 | break; |
| 5057 | 5060 | case TOK___SNAN__: |
| 5058 | − vpush64(VT_DOUBLE, 0x7ff0000000000001ULL); | |
| 5059 | − next(); | |
| 5060 | − break; | |
| 5061 | + n = 0x7f800001; | |
| 5062 | + goto special_math_val; | |
| 5061 | 5063 | case TOK___INF__: |
| 5062 | − vpush64(VT_DOUBLE, 0x7ff0000000000000ULL); | |
| 5063 | − next(); | |
| 5064 | − break; | |
| 5064 | + n = 0x7f800000; | |
| 5065 | + goto special_math_val; | |
| 5065 | 5066 | |
| 5066 | 5067 | default: |
| 5067 | 5068 | tok_identifier: |