1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 03:37:43 +00:00

LibJS/JIT: Use PUSH imm when pushing null unwind context pointer(s)

Small code size optimization, saves 252 bytes on Kraken/ai-astar.js :^)
This commit is contained in:
Andreas Kling 2023-10-28 14:38:59 +02:00
parent bbde64e0b6
commit 87baf140f2

View file

@ -396,23 +396,29 @@ void Compiler::push_unwind_context(bool valid, Optional<Bytecode::Label> const&
// u64 finalizer; // u64 finalizer;
// }; // };
// push finalizer (patched later) if (finalizer.has_value()) {
m_assembler.mov( // push finalizer (patched later)
Assembler::Operand::Register(GPR0), m_assembler.mov(
Assembler::Operand::Imm(0), Assembler::Operand::Register(GPR0),
Assembler::Patchable::Yes); Assembler::Operand::Imm(0),
if (finalizer.has_value()) Assembler::Patchable::Yes);
block_data_for(finalizer.value().block()).absolute_references_to_here.append(m_assembler.m_output.size() - 8); block_data_for(finalizer.value().block()).absolute_references_to_here.append(m_assembler.m_output.size() - 8);
m_assembler.push(Assembler::Operand::Register(GPR0)); m_assembler.push(Assembler::Operand::Register(GPR0));
} else {
m_assembler.push(Assembler::Operand::Imm(0));
}
// push handler (patched later) if (handler.has_value()) {
m_assembler.mov( // push handler (patched later)
Assembler::Operand::Register(GPR0), m_assembler.mov(
Assembler::Operand::Imm(0), Assembler::Operand::Register(GPR0),
Assembler::Patchable::Yes); Assembler::Operand::Imm(0),
if (handler.has_value()) Assembler::Patchable::Yes);
block_data_for(handler.value().block()).absolute_references_to_here.append(m_assembler.m_output.size() - 8); block_data_for(handler.value().block()).absolute_references_to_here.append(m_assembler.m_output.size() - 8);
m_assembler.push(Assembler::Operand::Register(GPR0)); m_assembler.push(Assembler::Operand::Register(GPR0));
} else {
m_assembler.push(Assembler::Operand::Imm(0));
}
// push valid // push valid
m_assembler.push(Assembler::Operand::Imm(valid)); m_assembler.push(Assembler::Operand::Imm(valid));