Fix function call source location on ppc64

This commit is contained in:
Stas Boukarev 2026-03-12 21:23:17 +03:00
parent 3d6eb5dbbb
commit f72384c2c7
3 changed files with 11 additions and 8 deletions

View file

@ -173,16 +173,16 @@
(defun default-unknown-values (vop values nvals move-temp temp lra-label)
(declare (type (or tn-ref null) values)
(type unsigned-byte nvals) (type tn move-temp temp))
(note-this-location vop (if (<= nvals 1)
:single-value-return
:unknown-return))
(inst compute-code-from-lip code-tn lra-tn lra-label temp)
(if (<= nvals 1)
(progn
(note-this-location vop :single-value-return)
(inst isel csp-tn csp-tn ocfp-tn :eq))
(inst isel csp-tn csp-tn ocfp-tn :eq)
(let ((regs-defaulted (gen-label))
(defaulting-done (gen-label))
(default-stack-vals (gen-label)))
;; Branch off to the MV case.
(note-this-location vop :unknown-return)
(inst b? :ne regs-defaulted)
;; Do the single value case.
@ -700,14 +700,14 @@
(do-next-filler)
(return)))
(note-this-location vop :call-site)
,@(if (eq return :tail)
'((inst mtlr return-pc-pass)
(inst mtctr entry-point)
(note-this-location vop :call-site)
(inst bctr))
'((emit-alignment 3 :long-nop)
(inst mtctr entry-point)
(note-this-location vop :call-site)
(inst bctrl))))
,@(ecase return

View file

@ -264,7 +264,7 @@
(defun throw-test ()
(throw 'no-such-tag t))
(with-test (:name (:backtrace :throw :no-such-tag)
:fails-on (or :arm :mips :ppc :riscv))
:fails-on (or :arm :mips :riscv))
(assert-backtrace #'throw-test '((throw-test))))
(funcall (checked-compile
@ -277,7 +277,7 @@
(bar x)
(bar v)))))
:allow-style-warnings t))
(with-test (:name (:backtrace :bug-308926) :skipped-on :interpreter :fails-on (:or :ppc :ppc64))
(with-test (:name (:backtrace :bug-308926) :skipped-on :interpreter)
(assert-backtrace (lambda () (bug-308926 13))
'(((flet bar :in bug-308926) 13)
(bug-308926 &rest t))))

View file

@ -1688,5 +1688,8 @@
(#(A49305EF D0241AE7 E55E7F8C EE9A5410)
"(SB-PCL::%CLASS SB-PCL::%PARAMETER SB-PCL::%VARIABLE-REBINDING SPECIAL)"
"((& (>> val 8) 3))")
(#(359CB801 4D28C61A 53351B33 A2DD0906 B9B79FF6)
"(FUNCTION SB-IMPL::PREDICATE SB-IMPL::KEY SB-IMPL::TEST SB-IMPL::TEST-NOT)"
"((& (^ (>> val 3) (>> val 6)) 7))")
)
;; EOF