From ef845524e90c736b6cbab9320bc41114d421ff63 Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Sat, 13 Jun 2020 20:23:51 -0700 Subject: [PATCH] 6516 - operations on bytes Byte-oriented addressing is only supported in a couple of instructions in SubX. As a result, variables of type 'byte' can't live on the stack, or in registers 'esi' and 'edi'. --- apps/mu | Bin 274733 -> 278119 bytes apps/mu.subx | 216 +++++++++++++++++++++++++++++++++++++++++++++--- mu_instructions | 4 + mu_summary | 19 ++++- 4 files changed, 228 insertions(+), 11 deletions(-) diff --git a/apps/mu b/apps/mu index b261cc99c5f2154fddba0ed4d47b7053c1c2c1d1..867801d9fc05922f579c933785ff57b4f861688d 100755 GIT binary patch literal 278119 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 z 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 Chqqh+ literal 274733 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

ISCtsD3my?m5oL`Wal{1d#isX#(6AEZ>$;(Td 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 sV6OP^U~#rc31}Kp9OO3;p1UgW-OVpayload 0/imm32 c7 0/subop/copy *_Program-types 0/imm32 @@ -1173,6 +1173,64 @@ test-convert-function-with-local-var-dereferenced: 5d/pop-to-ebp c3/return +# variables of type 'byte' are not allowed on the stack +test-convert-function-with-byte-operations: + # . prologue + 55/push-ebp + 89/<- %ebp 4/r32/esp + # setup + (clear-stream _test-input-stream) + (clear-stream $_test-input-buffered-file->buffer) + (clear-stream _test-output-stream) + (clear-stream $_test-output-buffered-file->buffer) + # + (write _test-input-stream "fn foo {\n") + (write _test-input-stream " var x/eax: byte <- copy 0\n") + (write _test-input-stream " var y/ecx: byte <- copy 0\n") + (write _test-input-stream " y <- copy-byte x\n") + (write _test-input-stream " var z/edx: (addr byte) <- copy 0\n") + (write _test-input-stream " y <- copy-byte *z\n") + (write _test-input-stream " copy-byte-to *z, x\n") + (write _test-input-stream "}\n") + # convert + (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0) + (flush _test-output-buffered-file) +#? # dump _test-output-stream {{{ +#? (write 2 "^") +#? (write-stream 2 _test-output-stream) +#? (write 2 "$\n") +#? (rewind-stream _test-output-stream) +#? # }}} + # check output + (check-next-stream-line-equal _test-output-stream "foo:" "F - test-convert-function-with-byte-operations/0") + (check-next-stream-line-equal _test-output-stream " # . prologue" "F - test-convert-function-with-byte-operations/1") + (check-next-stream-line-equal _test-output-stream " 55/push-ebp" "F - test-convert-function-with-byte-operations/2") + (check-next-stream-line-equal _test-output-stream " 89/<- %ebp 4/r32/esp" "F - test-convert-function-with-byte-operations/3") + (check-next-stream-line-equal _test-output-stream " {" "F - test-convert-function-with-byte-operations/4") + (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:" "F - test-convert-function-with-byte-operations/5") + (check-next-stream-line-equal _test-output-stream " ff 6/subop/push %eax" "F - test-convert-function-with-byte-operations/6") + (check-next-stream-line-equal _test-output-stream " b8/copy-to-eax 0/imm32" "F - test-convert-function-with-byte-operations/7") + (check-next-stream-line-equal _test-output-stream " ff 6/subop/push %ecx" "F - test-convert-function-with-byte-operations/8") + (check-next-stream-line-equal _test-output-stream " b9/copy-to-ecx 0/imm32" "F - test-convert-function-with-byte-operations/9") + (check-next-stream-line-equal _test-output-stream " 8a/byte-> %eax 0x00000001/r32" "F - test-convert-function-with-byte-operations/10") + (check-next-stream-line-equal _test-output-stream " ff 6/subop/push %edx" "F - test-convert-function-with-byte-operations/11") + (check-next-stream-line-equal _test-output-stream " ba/copy-to-edx 0/imm32" "F - test-convert-function-with-byte-operations/12") + (check-next-stream-line-equal _test-output-stream " 8a/byte-> *edx 0x00000001/r32" "F - test-convert-function-with-byte-operations/13") + (check-next-stream-line-equal _test-output-stream " 88/byte<- *edx 0x00000000/r32" "F - test-convert-function-with-byte-operations/14") + (check-next-stream-line-equal _test-output-stream " 8f 0/subop/pop %edx" "F - test-convert-function-with-byte-operations/15") + (check-next-stream-line-equal _test-output-stream " 8f 0/subop/pop %ecx" "F - test-convert-function-with-byte-operations/16") + (check-next-stream-line-equal _test-output-stream " 8f 0/subop/pop %eax" "F - test-convert-function-with-byte-operations/17") + (check-next-stream-line-equal _test-output-stream " }" "F - test-convert-function-with-byte-operations/18") + (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:" "F - test-convert-function-with-byte-operations/19") + (check-next-stream-line-equal _test-output-stream " # . epilogue" "F - test-convert-function-with-byte-operations/20") + (check-next-stream-line-equal _test-output-stream " 89/<- %esp 5/r32/ebp" "F - test-convert-function-with-byte-operations/21") + (check-next-stream-line-equal _test-output-stream " 5d/pop-to-ebp" "F - test-convert-function-with-byte-operations/22") + (check-next-stream-line-equal _test-output-stream " c3/return" "F - test-convert-function-with-byte-operations/23") + # . epilogue + 89/<- %esp 5/r32/ebp + 5d/pop-to-ebp + c3/return + test-convert-compare-register-with-literal: # . prologue 55/push-ebp @@ -5976,6 +6034,7 @@ parse-mu-var-def: # line: (addr stream byte), vars: (addr stack live-var), out: 3d/compare-eax-and 0/imm32 { 75/jump-if-!= break/disp8 + # TODO: disallow vars of type 'byte' on the stack # ensure that there's nothing else on this line (next-mu-token *(ebp+8) %ecx) (slice-empty? %ecx) # => eax @@ -5988,6 +6047,7 @@ parse-mu-var-def: # line: (addr stream byte), vars: (addr stack live-var), out: # or v has a register and there's more to this line { 74/jump-if-= break/disp8 + # TODO: disallow vars of type 'byte' in registers 'esi' or 'edi' # ensure that the next word is '<-' (next-mu-token *(ebp+8) %ecx) (slice-equal? %ecx "<-") # => eax @@ -7816,8 +7876,15 @@ compute-size-of-type-id: # t: type-id -> result/eax: int # eax = t 8b/-> *(ebp+8) 0/r32/eax # if v is a literal, return 0 - 3d/compare-eax-and 0/imm32 + 3d/compare-eax-and 0/imm32/literal 74/jump-if-= $compute-size-of-type-id:end/disp8 # eax changes type from type-id to int + # if v is a byte, return 1 + { + 3d/compare-eax-and 8/imm32/byte + 75/jump-if-!= break/disp8 + b8/copy-to-eax 1/imm32 + eb/jump $compute-size-of-type-id:end/disp8 + } # if v has a user-defined type, compute its size # TODO: support non-atom type (find-typeinfo %eax %ecx) @@ -11499,6 +11566,61 @@ _Primitive-copy-lit-to-mem: # (payload primitive) 0/imm32/no-disp32 1/imm32/output-is-write-only 0x11/imm32/alloc-id:fake + _Primitive-copy-byte-from-reg/imm32/next +# - copy byte +_Primitive-copy-byte-from-reg: + 0x11/imm32/alloc-id:fake:payload + # var/reg <- copy-byte var2/reg2 => 8a/byte-> %var2 var/r32 + 0x11/imm32/alloc-id:fake + _string-copy-byte/imm32/name + 0x11/imm32/alloc-id:fake + Single-byte-var-in-some-register/imm32/inouts + 0x11/imm32/alloc-id:fake + Single-byte-var-in-some-register/imm32/outputs + 0x11/imm32/alloc-id:fake + _string_8a_copy_byte/imm32/subx-name + 1/imm32/rm32-is-first-inout + 3/imm32/r32-is-first-output + 0/imm32/no-imm32 + 0/imm32/no-disp32 + 1/imm32/output-is-write-only + 0x11/imm32/alloc-id:fake + _Primitive-copy-byte-from-mem/imm32/next +_Primitive-copy-byte-from-mem: + 0x11/imm32/alloc-id:fake:payload + # var/reg <- copy-byte *var2/reg2 => 8a/byte-> *var2 var/r32 + 0x11/imm32/alloc-id:fake + _string-copy-byte/imm32/name + 0x11/imm32/alloc-id:fake + Single-byte-var-in-mem/imm32/inouts + 0x11/imm32/alloc-id:fake + Single-byte-var-in-some-register/imm32/outputs + 0x11/imm32/alloc-id:fake + _string_8a_copy_byte/imm32/subx-name + 1/imm32/rm32-is-first-inout + 3/imm32/r32-is-first-output + 0/imm32/no-imm32 + 0/imm32/no-disp32 + 1/imm32/output-is-write-only + 0x11/imm32/alloc-id:fake + _Primitive-copy-byte-to-mem/imm32/next +_Primitive-copy-byte-to-mem: + 0x11/imm32/alloc-id:fake:payload + # copy-byte-to *var1/reg1, var2/reg2 => 88/byte<- *reg1 reg2/r32 + 0x11/imm32/alloc-id:fake + _string-copy-byte-to/imm32/name + 0x11/imm32/alloc-id:fake + Two-args-byte-stack-byte-reg/imm32/inouts + 0/imm32/no-outputs + 0/imm32/no-outputs + 0x11/imm32/alloc-id:fake + _string_88_copy_byte/imm32/subx-name + 1/imm32/rm32-is-first-inout + 2/imm32/r32-is-second-inout + 0/imm32/no-imm32 + 0/imm32/no-disp32 + 0/imm32/output-is-write-only + 0x11/imm32/alloc-id:fake _Primitive-address/imm32/next # - address _Primitive-address: # (payload primitive) @@ -12476,6 +12598,16 @@ _string-copy-to: # (payload array byte) # "copy-to" 0x7/imm32/size 0x63/c 0x6f/o 0x70/p 0x79/y 0x2d/dash 0x74/t 0x6f/o +_string-copy-byte: + 0x11/imm32/alloc-id:fake:payload + # "copy-byte" + 0x9/imm32/size + 0x63/c 0x6f/o 0x70/p 0x79/y 0x2d/- 0x62/b 0x79/y 0x74/t 0x65/e +_string-copy-byte-to: + 0x11/imm32/alloc-id:fake:payload + # "copy-byte-to" + 0xc/imm32/size + 0x63/c 0x6f/o 0x70/p 0x79/y 0x2d/- 0x62/b 0x79/y 0x74/t 0x65/e 0x2d/- 0x74/t 0x6f/o _string-decrement: # (payload array byte) 0x11/imm32/alloc-id:fake:payload # "decrement" @@ -12923,6 +13055,16 @@ _string_8b_->: # (payload array byte) # "8b/->" 0x5/imm32/size 0x38/8 0x62/b 0x2f/slash 0x2d/dash 0x3e/> +_string_8a_copy_byte: + 0x11/imm32/alloc-id:fake:payload + # "8a/byte->" + 0x9/imm32/size + 0x38/8 0x61/a 0x2f// 0x62/b 0x79/y 0x74/t 0x65/e 0x2d/- 0x3e/> +_string_88_copy_byte: + 0x11/imm32/alloc-id:fake:payload + # "88/byte<-" + 0x9/imm32/size + 0x38/8 0x38/8 0x2f// 0x62/b 0x79/y 0x74/t 0x65/e 0x3c/< 0x2d/- _string_8d_copy_address: # (payload array byte) 0x11/imm32/alloc-id:fake:payload # "8d/copy-address" @@ -13007,6 +13149,26 @@ Int-var-in-mem: # (payload var) 0/imm32/no-register 0/imm32/no-register +# Not really legal, but closest we can currently represent a dereference of an (addr byte) +Single-byte-var-in-mem: # (payload list var) + 0x11/imm32/alloc-id:fake:payload + 0x11/imm32/alloc-id:fake + Byte-var-in-mem/imm32 + 0/imm32/next + 0/imm32/next + +# Not really legal, but closest we can currently represent a dereference of an (addr byte) +Byte-var-in-mem: # (payload var) + 0x11/imm32/alloc-id:fake:payload + 0/imm32/name + 0/imm32/name + 0x11/imm32/alloc-id:fake + Type-byte/imm32 + 1/imm32/some-block-depth + 1/imm32/some-stack-offset + 0/imm32/no-register + 0/imm32/no-register + Two-args-int-stack-int-reg: # (payload list var) 0x11/imm32/alloc-id:fake:payload 0x11/imm32/alloc-id:fake @@ -13014,6 +13176,14 @@ Two-args-int-stack-int-reg: # (payload list var) 0x11/imm32/alloc-id:fake Single-int-var-in-some-register/imm32/next +# Not really legal, but closest we can currently represent a dereference of an (addr byte) +Two-args-byte-stack-byte-reg: # (payload list var) + 0x11/imm32/alloc-id:fake:payload + 0x11/imm32/alloc-id:fake + Byte-var-in-mem/imm32 + 0x11/imm32/alloc-id:fake + Single-byte-var-in-some-register/imm32/next + Two-args-int-reg-int-stack: # (payload list var) 0x11/imm32/alloc-id:fake:payload 0x11/imm32/alloc-id:fake @@ -13056,6 +13226,13 @@ Single-addr-var-in-some-register: # (payload list var) 0/imm32/next 0/imm32/next +Single-byte-var-in-some-register: # (payload list var) + 0x11/imm32/alloc-id:fake:payload + 0x11/imm32/alloc-id:fake + Byte-var-in-some-register/imm32 + 0/imm32/next + 0/imm32/next + Int-var-in-some-register: # (payload var) 0x11/imm32/alloc-id:fake:payload 0/imm32/name @@ -13068,10 +13245,10 @@ Int-var-in-some-register: # (payload var) Any-register/imm32 Any-register: # (payload array byte) - 0x11/imm32/alloc-id:fake:payload - 1/imm32/size - # data - 2a/asterisk + 0x11/imm32/alloc-id:fake:payload + 1/imm32/size + # data + 2a/asterisk Addr-var-in-some-register: # (payload var) 0x11/imm32/alloc-id:fake:payload @@ -13084,6 +13261,17 @@ Addr-var-in-some-register: # (payload var) 0x11/imm32/alloc-id:fake Any-register/imm32 +Byte-var-in-some-register: # (payload var) + 0x11/imm32/alloc-id:fake:payload + 0/imm32/name + 0/imm32/name + 0x11/imm32/alloc-id:fake + Type-byte/imm32 + 1/imm32/some-block-depth + 0/imm32/no-stack-offset + 0x11/imm32/alloc-id:fake + Any-register/imm32 + Single-int-var-in-eax: # (payload list var) 0x11/imm32/alloc-id:fake:payload 0x11/imm32/alloc-id:fake @@ -13234,6 +13422,14 @@ Type-addr: # (payload tree type-id) 0/imm32/right:null 0/imm32/right:null +Type-byte: # (payload tree type-id) + 0x11/imm32/alloc-id:fake:payload + 1/imm32/is-atom + 8/imm32/value:byte + 0/imm32/left:unused + 0/imm32/right:null + 0/imm32/right:null + == code emit-subx-primitive: # out: (addr buffered-file), stmt: (addr stmt), primitive: (addr primitive), err: (addr buffered-file), ed: (addr exit-descriptor) # . prologue diff --git a/mu_instructions b/mu_instructions index 5ce9e07c..7b38a1f8 100644 --- a/mu_instructions +++ b/mu_instructions @@ -90,6 +90,10 @@ var/reg <- copy n => "c7 0/subop/copy %" reg " " n "/imm32" copy-to var, n => "c7 0/subop/copy *(ebp+" var.stack-offset ") " n "/imm32" copy-to *var/reg, n => "c7 0/subop/copy *" reg " " n "/imm32" +var/reg <- copy-byte var2/reg2 => "8a/byte-> %" reg2 " " reg "/r32" +var/reg <- copy-byte *var2/reg2 => "8a/byte-> *" reg2 " " reg "/r32" +copy-byte-to *var1/reg1, var2/reg2 => "88/byte<- *" reg1 " " reg2 "/r32" + compare var1, var2/reg2 => "39/compare *(ebp+" var1.stack-offset ") " reg2 "/r32" compare *var1/reg1, var2/reg2 => "39/compare *" reg1 " " reg2 "/r32" compare var1/reg1, var2 => "3b/compare<- *(ebp+" var2.stack-offset ") " reg1 "/r32" diff --git a/mu_summary b/mu_summary index f97e1bd6..286f8286 100644 --- a/mu_summary +++ b/mu_summary @@ -98,7 +98,7 @@ register): var/reg <- xor n xor-with var, n - var1/reg1 <- copy var2/reg2 + var/reg <- copy var2/reg2 copy-to var1, var2/reg var/reg <- copy var2 var/reg <- copy n @@ -118,6 +118,23 @@ Any instruction above that takes a variable in memory can be replaced with a dereference (`*`) of an address variable in a register. But you can't dereference variables in memory. +## Byte operations + +A special-case is variables of type 'byte'. Mu is a 32-bit platform so for the +most part only supports types that are multiples of 32 bits. However, we do +want to support strings in ASCII and UTF-8, which will be arrays of bytes. + +Since most x86 instructions implicitly load 32 bits at a time from memory, +variables of type 'byte' are only allowed in registers, not on the stack. Here +are the possible instructions for reading bytes to/from memory: + + var/reg <- copy-byte var2/reg2 # var: byte, var2: byte + var/reg <- copy-byte *var2/reg2 # var: byte, var2: (addr byte) + copy-byte-to *var1/reg1, var2/reg2 # var1: (addr byte), var2: byte + +In addition, variables of type 'byte' are restricted to (the lowest bytes of) +just 4 registers: eax, ecx, edx and ebx. + ## Primitive jump instructions There are two kinds of jumps, both with many variations: `break` and `loop`.