diff options
author | Damien George <damien.p.george@gmail.com> | 2018-09-14 17:36:09 +1000 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2018-09-14 17:36:09 +1000 |
commit | dd522d63b63033b7c38ca175a0a9e4b50ef9d82b (patch) | |
tree | b124ef84716a112369fda9201427a45817cf3a61 /py | |
parent | 9f241ef398cb0a7fbccc93b36a0fe032f89221e4 (diff) | |
download | micropython-dd522d63b63033b7c38ca175a0a9e4b50ef9d82b.tar.gz micropython-dd522d63b63033b7c38ca175a0a9e4b50ef9d82b.zip |
py/asmx64: Fix bug in assembler when creating disp with r13 and 0 offset
Diffstat (limited to 'py')
-rw-r--r-- | py/asmx64.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/py/asmx64.c b/py/asmx64.c index 271c9f0fb8..fdf9ceeff5 100644 --- a/py/asmx64.c +++ b/py/asmx64.c @@ -192,7 +192,7 @@ STATIC void asm_x64_write_r64_disp(asm_x64_t *as, int r64, int disp_r64, int dis return; } - if (disp_offset == 0 && disp_r64 != ASM_X64_REG_RBP) { + if (disp_offset == 0 && disp_r64 != ASM_X64_REG_RBP && disp_r64 != ASM_X64_REG_R13) { asm_x64_write_byte_1(as, MODRM_R64(r64) | MODRM_RM_DISP0 | MODRM_RM_R64(disp_r64)); } else if (SIGNED_FIT8(disp_offset)) { asm_x64_write_byte_2(as, MODRM_R64(r64) | MODRM_RM_DISP8 | MODRM_RM_R64(disp_r64), IMM32_L0(disp_offset)); |