summaryrefslogtreecommitdiff
path: root/py/emitnative.c
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2020-11-24 23:37:58 +1100
committerDamien George <damien@micropython.org>2021-05-20 23:43:25 +1000
commit5176a2d7325d941d8f2f41b31eab87b6e7a83f06 (patch)
tree2aac2de2815abd78bcd5e282576f8c62e489481a /py/emitnative.c
parentf49d47c167ce97b48ff3e9cbbc016b09664390f5 (diff)
py/emitnative: Fix x86-64 emitter to generate correct 8/16-bit stores.
Fixes issue #6643. Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'py/emitnative.c')
-rw-r--r--py/emitnative.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/py/emitnative.c b/py/emitnative.c
index 052a50591..425ba2d33 100644
--- a/py/emitnative.c
+++ b/py/emitnative.c
@@ -1769,7 +1769,7 @@ STATIC void emit_native_store_subscr(emit_t *emit) {
int reg_index = REG_ARG_2;
int reg_value = REG_ARG_3;
emit_pre_pop_reg_flexible(emit, &vtype_base, &reg_base, reg_index, reg_value);
- #if N_X86
+ #if N_X64 || N_X86
// special case: x86 needs byte stores to be from lower 4 regs (REG_ARG_3 is EDX)
emit_pre_pop_reg(emit, &vtype_value, reg_value);
#else
@@ -1856,7 +1856,7 @@ STATIC void emit_native_store_subscr(emit_t *emit) {
EMIT_NATIVE_VIPER_TYPE_ERROR(emit,
MP_ERROR_TEXT("can't store with '%q' index"), vtype_to_qstr(vtype_index));
}
- #if N_X86
+ #if N_X64 || N_X86
// special case: x86 needs byte stores to be from lower 4 regs (REG_ARG_3 is EDX)
emit_pre_pop_reg(emit, &vtype_value, reg_value);
#else