Manually override bytecode definition in optimizer, to avoid build error (GH-122316)

This commit is contained in:
Mark Shannon 2024-07-26 18:38:52 +01:00 committed by GitHub
parent c557ae97d6
commit 1ca99ed240
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 4 deletions

View File

@ -596,6 +596,14 @@ dummy_func(void) {
}
}
op(_MAYBE_EXPAND_METHOD, (callable, self_or_null, args[oparg] -- func, maybe_self, args[oparg])) {
(void)callable;
(void)self_or_null;
(void)args;
func = sym_new_not_null(ctx);
maybe_self = sym_new_not_null(ctx);
}
op(_PY_FRAME_GENERAL, (callable, self_or_null, args[oparg] -- new_frame: _Py_UOpsAbstractFrame *)) {
/* The _Py_UOpsAbstractFrame design assumes that we can copy arguments across directly */
(void)callable;

View File

@ -1599,14 +1599,19 @@
}
case _MAYBE_EXPAND_METHOD: {
_Py_UopsSymbol **args;
_Py_UopsSymbol *self_or_null;
_Py_UopsSymbol *callable;
_Py_UopsSymbol *func;
_Py_UopsSymbol *maybe_self;
_Py_UopsSymbol **args;
args = &stack_pointer[-oparg];
self_or_null = stack_pointer[-1 - oparg];
callable = stack_pointer[-2 - oparg];
(void)callable;
(void)self_or_null;
(void)args;
func = sym_new_not_null(ctx);
maybe_self = sym_new_not_null(ctx);
for (int _i = oparg; --_i >= 0;) {
args[_i] = sym_new_not_null(ctx);
}
stack_pointer[-2 - oparg] = func;
stack_pointer[-1 - oparg] = maybe_self;
break;