 : jit-pop-context-and-param ( -- )
     3 ds-reg 0 LWZ
     3 3 alien-offset LWZ
-    4 ds-reg -8 LWZ
-    ds-reg ds-reg 16 SUBI ;
+    4 ds-reg -4 LWZ
+    ds-reg ds-reg 8 SUBI ;
 
 : jit-push-param ( -- )
-    ds-reg ds-reg 8 ADDI
+    ds-reg ds-reg 4 ADDI
     4 ds-reg 0 STW ;
 
 : jit-set-context ( -- )
     jit-pop-context-and-param
-    4 jit-switch-context
+    3 jit-switch-context
     jit-push-param ;
 
 [ jit-set-context ] \ (set-context) define-sub-primitive
 
 : jit-pop-quot-and-param ( -- )
     3 ds-reg 0 LWZ
-    4 ds-reg -8 LWZ
-    ds-reg ds-reg 16 SUBI ;
+    4 ds-reg -4 LWZ
+    ds-reg ds-reg 8 SUBI ;
 
 : jit-start-context ( -- )
     ! Create the new context in return-reg
     3 vm-reg MR
     "new_context" jit-call
+    6 3 MR
 
     jit-pop-quot-and-param
 
-    3 jit-switch-context
+    6 jit-switch-context
 
     jit-push-param
 

    3 vm-reg MR
    "begin_callback" jit-call

    jit-restore-context

    ! Call quotation
    jit-call-quot

    jit-save-context

    3 6 MR
    4 vm-reg MR
    "inline_cache_miss" jit-call
    jit-load-context
    jit-restore-context ;

[ jit-load-return-address jit-inline-cache-miss ]
