diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-09-22 00:27:56 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-09-22 00:27:56 -0700 |
commit | 8152b0d109a3ee01b7a357926aa01b1a8de3f366 (patch) | |
tree | 00e0717e85cafccd60879d8008bf2ade7cd8e2a7 /apps/tile/int-stack.mu | |
parent | 04d06dfe537703885ae30230940e5756fecdcb19 (diff) | |
download | mu-8152b0d109a3ee01b7a357926aa01b1a8de3f366.tar.gz |
6832 - tile: right-justify numbers
Fails noisily for negative integers so far.
Diffstat (limited to 'apps/tile/int-stack.mu')
-rw-r--r-- | apps/tile/int-stack.mu | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/apps/tile/int-stack.mu b/apps/tile/int-stack.mu index 3bb9336f..74aa16fd 100644 --- a/apps/tile/int-stack.mu +++ b/apps/tile/int-stack.mu @@ -67,3 +67,25 @@ fn int-stack-length _self: (addr int-stack) -> result/eax: int { var top-addr/eax: (addr int) <- get self, top result <- copy *top-addr } + +fn max-stack-value _self: (addr int-stack) -> result/eax: int { + var self/esi: (addr int-stack) <- copy _self + var data-ah/edi: (addr handle array int) <- get self, data + var _data/eax: (addr array int) <- lookup *data-ah + var data/edi: (addr array int) <- copy _data + var top-addr/ecx: (addr int) <- get self, top + var i/ebx: int <- copy 0 + result <- copy 0 + { + compare i, *top-addr + break-if->= + var g/edx: (addr int) <- index data, i + compare *g, result + { + break-if-<= + result <- copy *g + } + i <- increment + loop + } +} |