diff options
Diffstat (limited to 'apps/tile/rpn.mu')
-rw-r--r-- | apps/tile/rpn.mu | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/apps/tile/rpn.mu b/apps/tile/rpn.mu index 193bd2c9..219e9b09 100644 --- a/apps/tile/rpn.mu +++ b/apps/tile/rpn.mu @@ -50,6 +50,26 @@ fn evaluate functions: (addr handle function), bindings: (addr table), scratch: push-number-to-value-stack out, a break $evaluate:process-word } + { + var is-div?/eax: boolean <- stream-data-equal? curr-stream, "/" + compare is-div?, 0 + break-if-= + var _b/xmm0: float <- pop-number-from-value-stack out + var b/xmm1: float <- copy _b + var a/xmm0: float <- pop-number-from-value-stack out + a <- divide b + push-number-to-value-stack out, a + break $evaluate:process-word + } + { + var is-sqrt?/eax: boolean <- stream-data-equal? curr-stream, "sqrt" + compare is-sqrt?, 0 + break-if-= + var a/xmm0: float <- pop-number-from-value-stack out + a <- square-root a + push-number-to-value-stack out, a + break $evaluate:process-word + } ## strings/arrays { var is-len?/eax: boolean <- stream-data-equal? curr-stream, "len" |