From fc9b23e550afa046ae3d6be4b520567282c46dcd Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 9 Sep 2013 20:24:36 -0600 Subject: [PATCH] JIT: fix slow path for inlined structure-field assignment --- racket/src/racket/src/jitinline.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/racket/src/racket/src/jitinline.c b/racket/src/racket/src/jitinline.c index 9361fff9b4..497c77e2de 100644 --- a/racket/src/racket/src/jitinline.c +++ b/racket/src/racket/src/jitinline.c @@ -413,6 +413,8 @@ static int generate_inlined_struct_op(int kind, mz_jit_state *jitter, if (inline_rator && (kind != INLINE_STRUCT_PROC_PRED)) { __START_SHORT_JUMPS__(1); ref = jit_bmci_ul(jit_forward(), JIT_R1, 0x1); + if (kind == INLINE_STRUCT_PROC_SET) + scheme_save_struct_temp(jitter, JIT_V1); /* undone immediately, but needed for fall-through */ refslow = jit_get_ip(); if (kind == INLINE_STRUCT_PROC_SET) scheme_restore_struct_temp(jitter, JIT_V1);