diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-09-19 21:44:48 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-09-19 21:44:48 -0700 |
commit | 8e4b4f2013b3f347e84398c70eabab60f6edd625 (patch) | |
tree | bf0e5f947ea43dbca51998bd4a27a05ffd8d161b /apps/tile/int-stack.mu | |
parent | 72e8240a23da7b82893d6b4e7ed3337ca0827049 (diff) | |
download | mu-8e4b4f2013b3f347e84398c70eabab60f6edd625.tar.gz |
6807 - tile: render intermediate stack state
Diffstat (limited to 'apps/tile/int-stack.mu')
-rw-r--r-- | apps/tile/int-stack.mu | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/apps/tile/int-stack.mu b/apps/tile/int-stack.mu index 5e7a2223..3bb9336f 100644 --- a/apps/tile/int-stack.mu +++ b/apps/tile/int-stack.mu @@ -47,3 +47,23 @@ $pop-int-stack:body: { val <- copy *result-addr } } + +fn int-stack-empty? _self: (addr int-stack) -> result/eax: boolean { +$int-stack-empty?:body: { + var self/esi: (addr int-stack) <- copy _self + var top-addr/eax: (addr int) <- get self, top + compare *top-addr, 0 + { + break-if-!= + result <- copy 1 # true + break $int-stack-empty?:body + } + result <- copy 0 # false +} +} + +fn int-stack-length _self: (addr int-stack) -> result/eax: int { + var self/esi: (addr int-stack) <- copy _self + var top-addr/eax: (addr int) <- get self, top + result <- copy *top-addr +} |