From 1b79f705b9975a3293fd111c5dc129e887dc01c0 Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Sun, 2 Aug 2020 11:51:29 -0700 Subject: 6702 --- apps/mu | Bin 368763 -> 368997 bytes apps/mu.subx | 21 ++++++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/apps/mu b/apps/mu index 3e28e763..0d808397 100755 Binary files a/apps/mu and b/apps/mu differ diff --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,12 +10994,21 @@ $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 $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) -- cgit 1.4.1-2-gfad0