Changeset 11587
- Timestamp:
- Jan 6, 2009, 9:15:03 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/level-0/PPC/ppc-def.lisp
r10959 r11587 651 651 (declare (dynamic-extent specs-and-vals)) 652 652 (let* ((len (length specs-and-vals)) 653 (total-words 0) 654 (monitor (eq (car specs-and-vals) :monitor-exception-ports))) 653 (total-words 0)) 655 654 (declare (fixnum len total-words)) 656 (when monitor657 (decf len)658 (setq specs-and-vals (cdr specs-and-vals)))659 655 (unless (oddp len) 660 656 (error "Length of ~s is even. Missing result ?" specs-and-vals)) … … 729 725 730 726 (%%ff-call 731 monitor732 727 fpr-reload-sizes 733 728 fpr-reload-offsets … … 751 746 752 747 753 (defppclapfunction %%ff-call ((monitor-exception-ports 12) 754 (reload-sizes 8) 748 (defppclapfunction %%ff-call ((reload-sizes 8) 755 749 (reload-offsets 4) 756 750 (frame-size 0) … … 758 752 (buf arg_y) 759 753 (entry arg_z)) 760 (check-nargs 7)761 (la imm0 1 6vsp)754 (check-nargs 6) 755 (la imm0 12 vsp) 762 756 (save-lisp-context imm0) 763 757 (lwz imm0 frame-size vsp) 764 758 (stwux sp sp imm0) 765 759 (stw sp ppc32::c-frame.savelr sp) 766 (lwz imm2 monitor-exception-ports vsp)767 (cmpwi cr1 imm2 nil)768 760 (macptr-ptr imm2 buf) 769 761 (mr imm1 imm2) … … 924 916 @loaded 925 917 (vpush buf) 926 (bne cr1 @callX)927 918 (bla .SPpoweropen-ffcall) 928 (b @called)929 @callX930 (bla .SPpoweropen-ffcallX)931 919 @called 932 920 (vpop buf) … … 1006 994 1007 995 ;;; This is just here so that we can jump to a subprim from lisp. 1008 (defppclapfunction %do-ff-call (( monitor arg_x) (regbuf arg_y) (entry arg_z))996 (defppclapfunction %do-ff-call ((regbuf arg_y) (entry arg_z)) 1009 997 (cmpdi cr0 regbuf nil) 1010 (cmpdi cr1 monitor nil)1011 998 (bnea cr0 .SPpoweropen-ffcall-return-registers) 1012 (beqa cr1 .SPpoweropen-ffcall) 1013 (ba .SPpoweropen-ffcallx)) 999 (ba .SPpoweropen-ffcall)) 1014 1000 1015 1001 (defun %ff-call (entry &rest specs-and-vals) … … 1017 1003 (let* ((len (length specs-and-vals)) 1018 1004 (total-words 0) 1019 (monitor (eq (car specs-and-vals) :monitor-exception-ports))1020 1005 (registers nil)) 1021 1006 (declare (fixnum len total-words)) 1022 (when monitor1023 (decf len)1024 (setq specs-and-vals (cdr specs-and-vals)))1025 1007 (let* ((result-spec (or (car (last specs-and-vals)) :void)) 1026 1008 (nargs (ash (the fixnum (1- len)) -1))) … … 1124 1106 (incf offset 8)))))) 1125 1107 (%load-fp-arg-regs n-fp-args fp-args) 1126 (%do-ff-call monitorregisters entry)1108 (%do-ff-call registers entry) 1127 1109 (values (%%ff-result result-spec))))))))))) 1128 1110
Note: See TracChangeset
for help on using the changeset viewer.