diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-08-02 11:51:29 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-08-02 11:51:29 -0700 |
commit | 1b79f705b9975a3293fd111c5dc129e887dc01c0 (patch) | |
tree | fbef915a5cc42fe113d8ecd334c8fcefb145e1db /apps | |
parent | 7d33cce06956614cf4a4a01f4a362dc097eea647 (diff) | |
download | mu-1b79f705b9975a3293fd111c5dc129e887dc01c0.tar.gz |
6702
Diffstat (limited to 'apps')
-rwxr-xr-x | apps/mu | bin | 368763 -> 368997 bytes | |||
-rw-r--r-- | apps/mu.subx | 21 |
2 files changed, 18 insertions, 3 deletions
diff --git a/apps/mu b/apps/mu index 3e28e763..0d808397 100755 --- a/apps/mu +++ b/apps/mu Binary files differdiff --git a/apps/mu.subx b/apps/mu.subx index 76e61243..cb2d6d71 100644 --- a/apps/mu.subx +++ b/apps/mu.subx @@ -10887,18 +10887,24 @@ $populate-mu-type:parse-element: (is-mu-array-type? %eax) # => eax 3d/compare-eax-and 0/imm32/false 0f 85/jump-if-!= $populate-mu-type:error3/disp32 + # if v is a byte, abort + (lookup *esi *(esi+4)) # => eax + (lookup *(eax+8) *(eax+0xc)) # Var-type Var-type => eax + (is-simple-mu-type? %eax 8) # byte => eax + 3d/compare-eax-and 0/imm32/false + 0f 85/jump-if-!= $populate-mu-type:error4/disp32 # if v is a slice, abort (lookup *esi *(esi+4)) # => eax (lookup *(eax+8) *(eax+0xc)) # Var-type Var-type => eax (is-simple-mu-type? %eax 0xc) # slice => eax 3d/compare-eax-and 0/imm32/false - 0f 85/jump-if-!= $populate-mu-type:error4/disp32 + 0f 85/jump-if-!= $populate-mu-type:error5/disp32 # if v is a stream, abort (we could support it, but initialization gets even more complex) (lookup *esi *(esi+4)) # => eax (lookup *(eax+8) *(eax+0xc)) # Var-type Var-type => eax (is-mu-stream-type? %eax) # => eax 3d/compare-eax-and 0/imm32/false - 0f 85/jump-if-!= $populate-mu-type:error5/disp32 + 0f 85/jump-if-!= $populate-mu-type:error6/disp32 # var tmp/ecx 51/push-ecx $populate-mu-type:create-typeinfo-fields: @@ -10988,7 +10994,7 @@ $populate-mu-type:error4: (write-buffered *(ebp+0x10) "type ") (type-name *edi) # Typeinfo-id => eax (write-buffered *(ebp+0x10) %eax) - (write-buffered *(ebp+0x10) ": 'slice' elements not allowed\n") + (write-buffered *(ebp+0x10) ": 'byte' elements not allowed\n") (flush *(ebp+0x10)) (stop *(ebp+0x14) 1) # never gets here @@ -10997,6 +11003,15 @@ $populate-mu-type:error5: (write-buffered *(ebp+0x10) "type ") (type-name *edi) # Typeinfo-id => eax (write-buffered *(ebp+0x10) %eax) + (write-buffered *(ebp+0x10) ": 'slice' elements not allowed\n") + (flush *(ebp+0x10)) + (stop *(ebp+0x14) 1) + # never gets here + +$populate-mu-type:error6: + (write-buffered *(ebp+0x10) "type ") + (type-name *edi) # Typeinfo-id => eax + (write-buffered *(ebp+0x10) %eax) (write-buffered *(ebp+0x10) ": 'stream' elements not allowed for now\n") (flush *(ebp+0x10)) (stop *(ebp+0x14) 1) |