diff options
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 |