Skip to content
Snippets Groups Projects
Commit 21c63274 authored by ram's avatar ram
Browse files

Changed local call VOPs to take the callee ir2env instead of just the

return PC.
Fixed some lifetimes in DEFINED-FULL-CALL, primarily affecting tail call.
parent 530c5203
No related branches found
No related tags found
No related merge requests found
......@@ -374,7 +374,7 @@ default-value-5
(:results (values :more t))
(:save-p t)
(:move-args :local-call)
(:info arg-locs return-pc target nvals)
(:info arg-locs callee target nvals)
(:ignore arg-locs args nfp)
(:node-var node)
(:vop-var vop)
......@@ -384,7 +384,7 @@ default-value-5
env-save)
(:generator 5
(store-stack-tn env-save env-tn)
(inst balix return-pc target)
(inst balix (callee-return-pc-tn callee) target)
(inst lr fp-tn fp)
(no-op)
(note-this-location vop :unknown-return)
......@@ -403,7 +403,7 @@ default-value-5
(args :more t))
(:save-p t)
(:move-args :local-call)
(:info arg-locs return-pc target)
(:info arg-locs callee target)
(:ignore arg-locs args nfp)
(:vop-var vop)
(:temporary (:sc stack
......@@ -411,7 +411,7 @@ default-value-5
env-save)
(:generator 20
(store-stack-tn env-save env-tn)
(inst balix return-pc target)
(inst balix (callee-return-pc-tn callee) target)
(inst lr fp-tn fp)
(no-op)
(note-this-location vop :unknown-return)
......@@ -433,11 +433,11 @@ default-value-5
(res :more t))
(:move-args :local-call)
(:save-p t)
(:info arg-locs return-pc target)
(:info arg-locs callee target)
(:ignore arg-locs args res nfp)
(:vop-var vop)
(:generator 5
(inst balix return-pc target)
(inst balix (callee-return-pc-tn callee) target)
(inst lr fp-tn fp)
(no-op)
(note-this-location vop :known-return)))
......@@ -548,24 +548,24 @@ default-value-5
(:temporary (:sc descriptor-reg
:offset old-fp-offset
:from (:argument ,(if (eq return :tail) 2 1))
:from (:argument 1)
:to :eval)
old-fp-pass)
(:temporary (:sc descriptor-reg
:offset return-pc-offset
:from (:argument ,(if (eq return :tail) 3 1))
:from (:argument ,(if (eq return :tail) 2 1))
:to :eval)
return-pc-pass)
,@(when named
'((:temporary (:sc descriptor-reg
`((:temporary (:sc descriptor-reg
:offset call-name-offset
:from (:argument 1)
:from (:argument ,(if (eq return :tail) 0 1))
:to :eval)
name-pass)
(:temporary (:scs (descriptor-reg)
:from (:argument 1)
:from (:argument ,(if (eq return :tail) 0 1))
:to :eval)
function)))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment