rendered paste bodyJIT_OP_IADD:
[=local, imm, imm] -> {
x86_mov_membase_imm(inst, X86_EBP, $1, $2+$3, 4);
}
[=local, imm, local, scratch("?")] -> {
if($1==$3)
{
x86_alu_membase_imm(inst, X86_ADD, X86_EBP, $1, $2);
}
else
{
x86_mov_reg_imm(inst, $4, $2);
x86_alu_membase_reg(inst, X86_ADD, X86_EBP, $1, $4);
}
}
[=local, imm, reg] -> {
x86_mov_membase_reg(inst, X86_EBP, $1, $3, 4);
x86_alu_membase_imm(inst, X86_ADD, X86_EBP, $1, $2);
}
[=local, local, imm, scratch("?")] -> {
if($1==$2)x86_alu_membase_imm(inst, X86_ADD, X86_EBP, $1, $3);
else
{
x86_mov_reg_imm(inst, $4, $3);
x86_alu_reg_membase(inst, X86_ADD, $4, X86_EBP, $2);
x86_mov_membase_reg(inst, X86_EBP, $1, $4, 4);
}
}
[=local, local, local, scratch("?")] -> {
if($1==$2 && $1==$3)
{
x86_mov_reg_membase(inst, $4, X86_EBP, $1, 4);
x86_alu_membase_reg(inst, X86_ADD, X86_EBP, $1, $4);
}
else if($1==$2)
{
x86_mov_reg_membase(inst, $4, X86_EBP, $3, 4);
x86_alu_membase_reg(inst, X86_ADD, X86_EBP, $1, $4);
}
else if($1==$3)
{
x86_mov_reg_membase(inst, $4, X86_EBP, $2, 4);
x86_alu_membase_reg(inst, X86_ADD, X86_EBP, $1, $4);
}
else
{
x86_mov_reg_membase(inst, $4, X86_EBP, $2, 4);
x86_alu_reg_membase(inst, X86_ADD, $4, X86_EBP, $3);
x86_mov_membase_reg(inst, X86_EBP, $1, $4, 4);
}
}
[=local, local, reg, scratch("?")] -> {
if($1!=$2)
{
x86_mov_reg_membase(inst, $4, X86_EBP, $2, 4);
x86_alu_reg_reg(inst, X86_ADD, $4, $3);
x86_mov_membase_reg(inst, X86_EBP, $1, $4, 4);
}
else
{
x86_alu_membase_reg(inst, X86_ADD, X86_EBP, $1, $3);
}
}
[=local, reg, imm] -> {
x86_mov_membase_reg(inst, X86_EBP, $1, $2, 4);
x86_alu_membase_imm(inst, X86_ADD, X86_EBP, $1, $3);
}
[=local, reg, local, scratch("?")] -> {
if($1!=$3)
{
x86_mov_reg_membase(inst, $4, X86_EBP, $3, 4);
x86_alu_reg_reg(inst, X86_ADD, $4, $2);
x86_mov_membase_reg(inst, X86_EBP, $1, $4, 4);
}
else
{
x86_alu_membase_reg(inst, X86_ADD, X86_EBP, $1, $2);
}
}
[=local, reg, reg] -> {
x86_mov_membase_reg(inst, X86_EBP, $1, $2, 4);
x86_alu_membase_reg(inst, X86_EBP, X86_EBP, $1, $3);
}
[=reg, imm, imm] -> {
x86_mov_reg_imm(inst, $1, $2+$3);
}
[=reg, imm, local] -> {
x86_mov_reg_membase(inst, $1, X86_EBP, $3, 4);
if($2!=0)x86_alu_reg_imm(inst, X86_ADD, $1, $2);
}
[=reg, imm, reg] -> {
if($3!=$1)x86_mov_reg_reg(inst, $1, $3, 4);
if($2!=0)x86_alu_reg_imm(inst, X86_ADD, $1, $2);
}
[=reg, local, imm] -> {
x86_mov_reg_membase(inst, $1, X86_EBP, $2, 4);
if($3!=0)x86_alu_reg_imm(inst, X86_ADD, $1, $3);
}
[=reg, local, local] -> {
x86_mov_reg_membase(inst, $1, X86_EBP, $3, 4);
if($2!=$3)x86_alu_reg_membase(inst, $1, X86_EBP, $1, 4);
else x86_alu_reg_reg(inst, X86_ADD, $1, $1);
}
[=reg, local, reg] -> {
if($1!=$3)x86_mov_reg_reg(inst, $1, $3, 4);
x86_alu_reg_membase(inst, X86_ADD, $1, X86_EBP, $2);
}
[=reg, reg, imm] -> {
if($3!=$1)x86_mov_reg_reg(inst, $1, $2, 4);
if($3!=0)x86_alu_reg_imm(inst, X86_ADD, $1, $3);
}
[=reg, reg, local] -> {
if($2==$1) x86_alu_reg_membase(inst, X86_ADD, $1, X86_EBP, $3);
else
{
x86_mov_reg_reg(inst, $1, $2, 4);
x86_alu_reg_membase(inst, X86_ADD, $1, X86_EBP, $3);
}
}
[=reg, reg, reg] -> {
if($1==$2 && $1==$3) x86_alu_reg_reg(inst, X86_ADD, $1, $1);
else if($3==$1)x86_alu_reg_reg(inst, X86_ADD, $1, $3);
else if($3==$2)x86_alu_reg_reg(inst, X86_ADD, $1, $2);
else
{
x86_mov_reg_reg(inst, $1, $2, 4);
x86_alu_reg_reg(inst, X86_ADD, $1, $3);
}
}