parent
e970a6194a
commit
d238007cf8
|
@ -934,6 +934,31 @@
|
|||
(unsafe-fxlshift 1 63)
|
||||
(unsafe-fxlshift 1 31)))
|
||||
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Check that allocation by inlined `unsafe-flrandom` is ok
|
||||
|
||||
(test #t
|
||||
symbol?
|
||||
(let ([r (current-pseudo-random-generator)])
|
||||
(for/fold ([v #f]) ([i (in-range 1000000)])
|
||||
;; The pattern of `if`s here is intended to check the JIT's
|
||||
;; runstack pointer is syned for allocation
|
||||
(let* ([a (let ([v (unsafe-flrandom r)])
|
||||
(if (negative? v)
|
||||
(error "oops")
|
||||
v))]
|
||||
[b (let ([v (unsafe-flrandom r)])
|
||||
(if (negative? v)
|
||||
(error "oops")
|
||||
v))]
|
||||
[c (let ([v (unsafe-flrandom r)])
|
||||
(if (negative? v)
|
||||
(error "oops")
|
||||
v))])
|
||||
(if (and (eqv? a b) (eqv? b c))
|
||||
'same
|
||||
'diff)))))
|
||||
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(report-errs)
|
||||
|
|
|
@ -2151,6 +2151,7 @@ int scheme_generate_inlined_unary(mz_jit_state *jitter, Scheme_App2_Rec *app, in
|
|||
scheme_mz_unbox_restore(jitter, &ubs);
|
||||
|
||||
mz_runstack_unskipped(jitter, 1);
|
||||
mz_rs_sync();
|
||||
|
||||
mz_prepare(1);
|
||||
jit_pusharg_p(JIT_R0);
|
||||
|
|
Loading…
Reference in New Issue
Block a user