diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-07-24 22:10:09 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-07-24 22:10:09 -0700 |
commit | 2a1b9d32d7bdeb2fe148f51e83bc28a68b23d431 (patch) | |
tree | b7675f1c6838320fc03bb470329cd91d53e74350 | |
parent | 750f490b4d195259821e77ba23540ebd252f1af6 (diff) | |
download | mu-2a1b9d32d7bdeb2fe148f51e83bc28a68b23d431.tar.gz |
6668
type-match? is no longer symmetric; we have to be careful about arg ordering.
-rwxr-xr-x | apps/mu | bin | 359122 -> 359122 bytes | |||
-rw-r--r-- | apps/mu.subx | 7 |
2 files changed, 4 insertions, 3 deletions
diff --git a/apps/mu b/apps/mu index e3382205..1926795b 100755 --- a/apps/mu +++ b/apps/mu Binary files differdiff --git a/apps/mu.subx b/apps/mu.subx index a68ee60d..9a024318 100644 --- a/apps/mu.subx +++ b/apps/mu.subx @@ -12471,13 +12471,14 @@ $type-component-match?:compare-addr: 39/compare %edx 0/r32/eax # Var-type b8/copy-to-eax 1/imm32/true 0f 84/jump-if-= $type-component-match?:end/disp32 -$type-component-match?:check-type-parameter: # if def is a type parameter, return true { +$type-component-match?:check-type-parameter: 81 7/subop/compare *ecx 0/imm32/false # Type-tree-is-atom 74/jump-if-= break/disp8 81 7/subop/compare *(ecx+4) 0xa/imm32/type-parameter # Type-tree-value 75/jump-if-!= break/disp8 +$type-component-match?:type-parameter: b8/copy-to-eax 1/imm32/true 0f 84/jump-if-= $type-component-match?:end/disp32 } @@ -12504,7 +12505,7 @@ $type-component-match?:check-left: (lookup *(ecx+4) *(ecx+8)) # Type-tree-left Type-tree-left => eax 89/<- %ebx 0/r32/eax (lookup *(edx+4) *(edx+8)) # Type-tree-left Type-tree-left => eax - (type-component-match? %eax %ebx) # => eax + (type-component-match? %ebx %eax) # => eax 3d/compare-eax-and 0/imm32/false 74/jump-if-= $type-component-match?:end/disp8 $type-component-match?:check-right: @@ -12512,7 +12513,7 @@ $type-component-match?:check-right: (lookup *(ecx+0xc) *(ecx+0x10)) # Type-tree-right Type-tree-right => eax 89/<- %ebx 0/r32/eax (lookup *(edx+0xc) *(edx+0x10)) # Type-tree-right Type-tree-right => eax - (type-component-match? %eax %ebx) # => eax + (type-component-match? %ebx %eax) # => eax $type-component-match?:end: # . restore registers 5b/pop-to-ebx |