1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 21:17:44 +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;
// };
// push finalizer (patched later)
m_assembler.mov(
Assembler::Operand::Register(GPR0),
Assembler::Operand::Imm(0),
Assembler::Patchable::Yes);
if (finalizer.has_value())
if (finalizer.has_value()) {
// push finalizer (patched later)
m_assembler.mov(
Assembler::Operand::Register(GPR0),
Assembler::Operand::Imm(0),
Assembler::Patchable::Yes);
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)
m_assembler.mov(
Assembler::Operand::Register(GPR0),
Assembler::Operand::Imm(0),
Assembler::Patchable::Yes);
if (handler.has_value())
if (handler.has_value()) {
// push handler (patched later)
m_assembler.mov(
Assembler::Operand::Register(GPR0),
Assembler::Operand::Imm(0),
Assembler::Patchable::Yes);
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
m_assembler.push(Assembler::Operand::Imm(valid));