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:
parent
bbde64e0b6
commit
87baf140f2
1 changed files with 20 additions and 14 deletions
|
@ -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));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue