diff options
-rwxr-xr-x | apps/mu | bin | 147647 -> 147649 bytes | |||
-rw-r--r-- | apps/mu.subx | 11 |
2 files changed, 6 insertions, 5 deletions
diff --git a/apps/mu b/apps/mu index e6845871..9827da9d 100755 --- a/apps/mu +++ b/apps/mu Binary files differdiff --git a/apps/mu.subx b/apps/mu.subx index 85c3b04a..1d8b7a47 100644 --- a/apps/mu.subx +++ b/apps/mu.subx @@ -7483,7 +7483,7 @@ $operand-matches-primitive?:check-register: 75/jump-if-!= break/disp8 81 7/subop/compare *(esi+0x10) 0/imm32 # Var-register 74/jump-if-= break/disp8 - 81 7/subop/compare *(ecx+8) 0/imm32 # Stmt-var-is-deref + 81 7/subop/compare *(ecx+8) 0/imm32/false # Stmt-var-is-deref 74/jump-if-= break/disp8 e9/jump $operand-matches-primitive?:return-true/disp32 } @@ -7497,8 +7497,7 @@ $operand-matches-primitive?:check-register: 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 # Var-register - b8/copy-to-eax 0/imm32/false - 74/jump-if-= $operand-matches-primitive?:end/disp8 + 74/jump-if-= $operand-matches-primitive?:return-false/disp8 # 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 @@ -7506,12 +7505,14 @@ $operand-matches-primitive?:check-register: # 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 - 74/jump-if-= $operand-matches-primitive?:end/disp8 + 74/jump-if-= $operand-matches-primitive?:return-false/disp8 } } $operand-matches-primitive?:return-true: - # return true b8/copy-to-eax 1/imm32/true + eb/jump $operand-matches-primitive?:end/disp8 +$operand-matches-primitive?:return-false: + b8/copy-to-eax 0/imm32/false $operand-matches-primitive?:end: # . restore registers 5f/pop-to-edi |