diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-02-20 11:54:19 -0800 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-02-20 11:54:19 -0800 |
commit | 5d1d61012dc1449feb8928bbf516532afe1c4965 (patch) | |
tree | f09185ac77013c7dbffc6e0faa23eafa53197fd1 /apps | |
parent | 227c1eaf57331d89dad84dbadd02f0bf27253f48 (diff) | |
download | mu-5d1d61012dc1449feb8928bbf516532afe1c4965.tar.gz |
6030
Diffstat (limited to 'apps')
-rwxr-xr-x | apps/mu | bin | 147394 -> 147384 bytes | |||
-rw-r--r-- | apps/mu.subx | 20 |
2 files changed, 9 insertions, 11 deletions
diff --git a/apps/mu b/apps/mu index d150f170..aa1dd742 100755 --- a/apps/mu +++ b/apps/mu Binary files differdiff --git a/apps/mu.subx b/apps/mu.subx index 811be37c..30b9db93 100644 --- a/apps/mu.subx +++ b/apps/mu.subx @@ -7411,24 +7411,22 @@ operand-matches-primitive?: # var: (handle var), prim-var: (handle var) -> resu 74/jump-if-= $operand-matches-primitive?:end/disp8 # return false if var->register doesn't match prim-var->register { - # if addresses are equal, don't return here - 8b/-> *(esi+0x10) 0/r32/eax - 39/compare *(edi+0x10) 0/r32/eax + # if register addresses are equal, it's a match + 8b/-> *(esi+0x10) 0/r32/eax # Var-register + 39/compare *(edi+0x10) 0/r32/eax # Var-register 74/jump-if-= break/disp8 # if either address is 0, return false 3d/compare-eax-and 0/imm32 74/jump-if-= $operand-matches-primitive?:end/disp8 # eax goes from meaning var->register to result - 81 7/subop/compare *(edi+0x10) 0/imm32 + 81 7/subop/compare *(edi+0x10) 0/imm32 # Var-register 74/jump-if-= $operand-matches-primitive?:end/disp8 # eax goes from meaning var->register to result - # if prim-var->register is wildcard, return true - (string-equal? *(edi+0x10) Any-register) # Var-register + # if prim-var->register is wildcard, it's a match + (string-equal? *(edi+0x10) Any-register) # Var-register => eax 3d/compare-eax-and 0/imm32/false - b8/copy-to-eax 1/imm32/true - 75/jump-if-!= $operand-matches-primitive?:end/disp8 - # if string contents don't match, return false - (string-equal? *(esi+0x10) *(edi+0x10)) # Var-register Var-register + 75/jump-if-!= break/disp8 + # if string contents aren't equal, return false + (string-equal? *(esi+0x10) *(edi+0x10)) # Var-register Var-register => eax 3d/compare-eax-and 0/imm32/false - b8/copy-to-eax 0/imm32/false 74/jump-if-= $operand-matches-primitive?:end/disp8 } # return true |