This commit is contained in:
Kartik Agaram 2020-09-28 20:11:40 -07:00
parent db469acb3a
commit 59391f2af4
1 changed files with 9 additions and 0 deletions

View File

@ -35,6 +35,7 @@ var/reg <- add var2/reg2 => "01/add-to %" reg " " reg2 "/r32"
var/reg <- add var2 => "03/add *(ebp+" var2.stack-offset ") " reg "/r32"
var/reg <- add *var2/reg2 => "03/add *" reg2 " " reg "/r32"
add-to var1, var2/reg => "01/add-to *(ebp+" var1.stack-offset ") " reg "/r32"
add-to *var1/reg1, var2/reg2 => "01/add-to *" reg1 " " reg2 "/r32"
var/eax <- add n => "05/add-to-eax " n "/imm32"
var/reg <- add n => "81 0/subop/add %" reg " " n "/imm32"
add-to var, n => "81 0/subop/add *(ebp+" var.stack-offset ") " n "/imm32"
@ -44,6 +45,7 @@ var/reg <- subtract var2/reg2 => "29/subtract-from %" reg " " reg2 "/r32"
var/reg <- subtract var2 => "2b/subtract *(ebp+" var2.stack-offset ") " reg "/r32"
var/reg <- subtract *var2/reg2 => "2b/subtract *" reg2 " " reg1 "/r32"
subtract-from var1, var2/reg2 => "29/subtract-from *(ebp+" var1.stack-offset ") " reg2 "/r32"
subtract-from *var1/reg1, var2/reg2 => "29/subtract-from *" reg1 " " reg2 "/r32"
var/eax <- subtract n => "2d/subtract-from-eax " n "/imm32"
var/reg <- subtract n => "81 5/subop/subtract %" reg " " n "/imm32"
subtract-from var, n => "81 5/subop/subtract *(ebp+" var.stack-offset ") " n "/imm32"
@ -53,6 +55,7 @@ var/reg <- and var2/reg2 => "21/and-with %" reg " " reg2 "/r32"
var/reg <- and var2 => "23/and *(ebp+" var2.stack-offset " " reg "/r32"
var/reg <- and *var2/reg2 => "23/and *" reg2 " " reg "/r32"
and-with var1, var2/reg => "21/and-with *(ebp+" var1.stack-offset ") " reg "/r32"
and-with *var1/reg1, var2/reg2 => "21/and-with *" reg1 " " reg2 "/r32"
var/eax <- and n => "25/and-with-eax " n "/imm32"
var/reg <- and n => "81 4/subop/and %" reg " " n "/imm32"
and-with var, n => "81 4/subop/and *(ebp+" var.stack-offset ") " n "/imm32"
@ -62,6 +65,7 @@ var/reg <- or var2/reg2 => "09/or-with %" reg " " reg2 "/r32"
var/reg <- or var2 => "0b/or *(ebp+" var2.stack-offset ") " reg "/r32"
var/reg <- or *var2/reg2 => "0b/or *" reg2 " " reg "/r32"
or-with var1, var2/reg2 => "09/or-with *(ebp+" var1.stack-offset " " reg2 "/r32"
or-with *var1/reg1, var2/reg2 => "09/or-with *" reg1 " " reg2 "/r32"
var/eax <- or n => "0d/or-with-eax " n "/imm32"
var/reg <- or n => "81 1/subop/or %" reg " " n "/imm32"
or-with var, n => "81 1/subop/or *(ebp+" var.stack-offset ") " n "/imm32"
@ -71,6 +75,7 @@ var/reg <- xor var2/reg2 => "31/xor-with %" reg " " reg2 "/r32"
var/reg <- xor var2 => "33/xor *(ebp+" var2.stack-offset ") " reg "/r32"
var/reg <- xor *var2/reg2 => "33/xor *" reg2 " " reg "/r32"
xor-with var1, var2/reg => "31/xor-with *(ebp+" var1.stack-offset ") " reg "/r32"
xor-with *var1/reg1, var2/reg2 => "31/xor-with *" reg1 " " reg2 "/r32"
var/eax <- xor n => "35/xor-with-eax " n "/imm32"
var/reg <- xor n => "81 6/subop/xor %" reg " " n "/imm32"
xor-with var, n => "81 6/subop/xor *(ebp+" var.stack-offset ") " n "/imm32"
@ -80,8 +85,11 @@ var/reg <- shift-left n => "c1/shift 4/subop/left %" reg " " n "/imm32
var/reg <- shift-right n => "c1/shift 5/subop/right %" reg " " n "/imm32"
var/reg <- shift-right-signed n => "c1/shift 7/subop/right-signed %" reg " " n "/imm32"
shift-left var, n => "c1/shift 4/subop/left *(ebp+" var.stack-offset ") " n "/imm32"
shift-left *var/reg, n => "c1/shift 4/subop/left *" reg " " n "/imm32"
shift-right var, n => "c1/shift 5/subop/right *(ebp+" var.stack-offset ") " n "/imm32"
shift-right *var/reg, n => "c1/shift 5/subop/right *" reg " " n "/imm32"
shift-right-signed var, n => "c1/shift 7/subop/right-signed *(ebp+" var.stack-offset ") " n "/imm32"
shift-right-signed *var/reg, n => "c1/shift 7/subop/right-signed *" reg " " n "/imm32"
var/eax <- copy n => "b8/copy-to-eax " n "/imm32"
var/ecx <- copy n => "b9/copy-to-ecx " n "/imm32"
@ -91,6 +99,7 @@ var/esi <- copy n => "be/copy-to-esi " n "/imm32"
var/edi <- copy n => "bf/copy-to-edi " n "/imm32"
var/reg <- copy var2/reg2 => "89/<- %" reg " " reg2 "/r32"
copy-to var1, var2/reg => "89/<- *(ebp+" var1.stack-offset ") " reg "/r32"
copy-to *var1/reg1, var2/reg2 => "89/<- *" reg1 " " reg2 "/r32"
var/reg <- copy var2 => "8b/-> *(ebp+" var2.stack-offset ") " reg "/r32"
var/reg <- copy *var2/reg2 => "8b/-> *" reg2 " " reg "/r32"
var/reg <- copy n => "c7 0/subop/copy %" reg " " n "/imm32"