(:temp target-uwp any-reg nl2-offset))
(declare (ignore start count))
- (let ((error (generate-error-code nil invalid-unwind-error)))
+ (let ((error (generate-error-code nil 'invalid-unwind-error)))
(inst cmpwi block 0)
(inst beq error))
loop
- (let ((error (generate-error-code nil unseen-throw-tag-error target)))
+ (let ((error (generate-error-code nil 'unseen-throw-tag-error target)))
(inst cmpwi catch 0)
(inst beq error))
exit
(move target catch)
- (inst ba (make-fixup 'unwind :assembly-routine)))
-
-
-
+ ;; reuse catch
+ (inst lr catch (make-fixup 'unwind :assembly-routine))
+ (inst mtlr catch)
+ (inst blr))