Readd queue runaway optimizations in comparisons
This commit is contained in:
16
src/main.rs
16
src/main.rs
@ -475,10 +475,10 @@ fn generate_assembly_linux_x64_block(operations: &Vec<Operation>, functions: &Ve
|
||||
data.code += "\tmov rax, [queue+8*r12]\n";
|
||||
data.code += "\tcmp qword rax, [queue+8*r12+8]\n";
|
||||
data.code += "\tcmovg rbx, rcx\n";
|
||||
data.code += "\tmov qword [queue+8*r13], rbx\n";
|
||||
data.code += "\tadd r12, 2\n";
|
||||
data.code += "\tinc r13\n";
|
||||
data.code += ASSEMBLY_LINUX_X64_TRY_RESET_QUEUE;
|
||||
data.code += "\tmov qword [queue+8*r13], rbx\n";
|
||||
data.code += "\tinc r13\n";
|
||||
}
|
||||
"<" =>
|
||||
{
|
||||
@ -487,10 +487,10 @@ fn generate_assembly_linux_x64_block(operations: &Vec<Operation>, functions: &Ve
|
||||
data.code += "\tmov rax, [queue+8*r12]\n";
|
||||
data.code += "\tcmp qword rax, [queue+8*r12+8]\n";
|
||||
data.code += "\tcmovl rbx, rcx\n";
|
||||
data.code += "\tmov qword [queue+8*r13], rbx\n";
|
||||
data.code += "\tadd r12, 2\n";
|
||||
data.code += "\tinc r13\n";
|
||||
data.code += ASSEMBLY_LINUX_X64_TRY_RESET_QUEUE;
|
||||
data.code += "\tmov qword [queue+8*r13], rbx\n";
|
||||
data.code += "\tinc r13\n";
|
||||
}
|
||||
">=" =>
|
||||
{
|
||||
@ -499,10 +499,10 @@ fn generate_assembly_linux_x64_block(operations: &Vec<Operation>, functions: &Ve
|
||||
data.code += "\tmov rax, [queue+8*r12]\n";
|
||||
data.code += "\tcmp qword rax, [queue+8*r12+8]\n";
|
||||
data.code += "\tcmovge rbx, rcx\n";
|
||||
data.code += "\tmov qword [queue+8*r13], rbx\n";
|
||||
data.code += "\tadd r12, 2\n";
|
||||
data.code += "\tinc r13\n";
|
||||
data.code += ASSEMBLY_LINUX_X64_TRY_RESET_QUEUE;
|
||||
data.code += "\tmov qword [queue+8*r13], rbx\n";
|
||||
data.code += "\tinc r13\n";
|
||||
}
|
||||
"<=" =>
|
||||
{
|
||||
@ -511,10 +511,10 @@ fn generate_assembly_linux_x64_block(operations: &Vec<Operation>, functions: &Ve
|
||||
data.code += "\tmov rax, [queue+8*r12]\n";
|
||||
data.code += "\tcmp qword rax, [queue+8*r12+8]\n";
|
||||
data.code += "\tcmovle rbx, rcx\n";
|
||||
data.code += "\tmov qword [queue+8*r13], rbx\n";
|
||||
data.code += "\tadd r12, 2\n";
|
||||
data.code += "\tinc r13\n";
|
||||
data.code += ASSEMBLY_LINUX_X64_TRY_RESET_QUEUE;
|
||||
data.code += "\tmov qword [queue+8*r13], rbx\n";
|
||||
data.code += "\tinc r13\n";
|
||||
}
|
||||
_ => todo!("intrinsic {} {}:{}", name, line, col)
|
||||
}
|
||||
|
Reference in New Issue
Block a user