GH-140683: JIT: Improve machine code for loading smaller constants on AArch64. (GH-142511)

* Use movz and movk instructions for loading 16 and 32 bit operands and oparg.
* Loading of 64 bit operands is unchanged.
This commit is contained in:
Mark Shannon 2025-12-11 12:33:39 +00:00 committed by GitHub
parent 469f191a85
commit 4eab90f4f3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 320 additions and 135 deletions

View file

@ -810,7 +810,7 @@ dummy_func(
assert(next_instr->op.code == STORE_FAST);
next_oparg = next_instr->op.arg;
#else
next_oparg = (int)CURRENT_OPERAND0();
next_oparg = (int)CURRENT_OPERAND0_16();
#endif
_PyStackRef *target_local = &GETLOCAL(next_oparg);
assert(PyUnicode_CheckExact(left_o));