From bbde64e0b689712a445dd5954c2e9f9c81881b62 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 28 Oct 2023 14:38:40 +0200 Subject: [PATCH] LibJIT: Emit 8-bit PUSH imm when possible --- Userland/Libraries/LibJIT/Assembler.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Userland/Libraries/LibJIT/Assembler.h b/Userland/Libraries/LibJIT/Assembler.h index 16121ea2ab..b75e71bf3a 100644 --- a/Userland/Libraries/LibJIT/Assembler.h +++ b/Userland/Libraries/LibJIT/Assembler.h @@ -499,9 +499,15 @@ struct Assembler { emit8(0x49); emit8(0x50 | encode_reg(op.reg)); } else if (op.type == Operand::Type::Imm) { - VERIFY(op.fits_in_i32()); - emit8(0x68); - emit32(op.offset_or_immediate); + if (op.fits_in_i8()) { + emit8(0x6a); + emit8(op.offset_or_immediate); + } else if (op.fits_in_i32()) { + emit8(0x68); + emit32(op.offset_or_immediate); + } else { + VERIFY_NOT_REACHED(); + } } else { VERIFY_NOT_REACHED(); }