- Dec 17, 2005
- Dec 14, 2005
-
-
rtoy authored
-
- Dec 12, 2005
- Dec 11, 2005
-
-
rtoy authored
-
rtoy authored
fdefn-raw-addr-slot actually hold a tagged pointer instead of the raw address. Not sure if this is good or not, but making it like sparc makes ppc a little easier. Might need a cross-compile; the 2005-12-1-ppc cross-compile script works fine. assembly/ppc/arith.lisp: o Static functions are now tagged, so need to adjust address before branching to them. compiler/generic/new-genesis.lisp: o Fill fdefn-raw-addr-slot with the tagged address instead of converting to untagged. compiler/ppc/call.lisp: o fdefn-raw-addr-slot is tagged, so need to adjust it before branching to function. compiler/ppc/cell.lisp: o No need to adjust function address before storing it in the fdefn-raw-addr-slot. compiler/ppc/static-fn.lisp: o Static functions are tagged, so need to adjust address before branching to them. lisp/gc.c: o Don't need scav_fdefn, because the fdefn is a tagged object now. lisp/ppc-assem.S: o Make undefined_tramp and closure_tramp be tagged instead of untagged. lisp/purify.c o RAW_ADDR_OFFSET is 0 now, like sparc.
-
rtoy authored
o Hack to make move-double-to-int-arg available in OLD-PPC and PPC packages. (Don't know why this is needed but it was.)
-
rtoy authored
used in the C calling convention, so it's a bad idea to have reg_FDEFN be r10. So, make r10 be the new unboxed register reg_NL7 and replace reg_L2 with reg_FDEFN. (I was too lazy to renumber all registers, and I don't think it matters where reg_FDEFN is.) A simple cross-compile is needed. Use boot-2005-12-1-ppc.lisp for the cross-compile script. compiler/ppc/vm.lisp: o Make old FDEFN be the new unboxed register NL7. o Rename L2 to be FDEFN, removing L2 complete. lisp/ppc-assem.S: o reg_L2 no longer exists, so don't use it. lisp/ppc-lispregs.h: o Make the corresponding changes here that were made in vm.lisp. bootfiles/19c/boot-2005-12-1-ppc.lisp: o Simple cross-compile script for this change.
-
- Dec 09, 2005
-
-
rtoy authored
(defun spunk (a b) (let (k m p q) (multiple-value-setq (k m p q) (the (values t t t t) (punk a b))))) Remove the assertion that the values type must have no required args and adjust maybe-negate-check appropriately. (This last from Alexey Dejneka.)
-
- Dec 06, 2005
-
-
rtoy authored
checking to see of the 'STANDARD-OBJECT class exists or not before checking to see if the object is a STANDARD-OBJECT type.
-
- Dec 05, 2005
-
-
emarsden authored
-
- Dec 04, 2005
-
-
rtoy authored
namestring. Bug noted by Lynn Quam, cmucl-imp, 2005/12/02.
-
- Dec 01, 2005
- Nov 30, 2005
-
-
rtoy authored
-
- Nov 29, 2005
- Nov 20, 2005
-
-
rtoy authored
cmucl-imp, 2005/11/02. o long-long args to callbacks were getting the wrong value because both halves were getting written to the same memory location when saving register args to memory. o A long-long return value was getting word-swapped; ppc is big-endian, not little-endian.
-
- Nov 18, 2005
-
-
rtoy authored
of times, regardless of what the body might do to the index variable.
-
- Nov 17, 2005
-
-
rtoy authored
better solution, but this works.) Although we don't have to, we always copy float args to an int register or stack. compiler/aliencomp.lisp: o Clean up and comment what we're doing here for ppc. o Use the new MOVE-{SINGLE,DOUBLE}-TO-INT vops to make the float go to the right integer register or stack location. compiler/ppc/c-call.lisp: o Add comments o Make the float :arg-tn methods handle storing of floats to the int stack. compiler/ppc/float.lisp: o Add MOVE-{SINGLE,DOUBLE}-TO-INT vops to copy a float to an int or stack.
-
- Nov 15, 2005
- Nov 14, 2005
- Nov 13, 2005
- Nov 12, 2005
-
-
rtoy authored
copying float args to the int registers in addition to the float regs. This really only needs to be done for varargs functions, but we don't have a way of indicating that right now. So always copy. A simple test is (alien:alien-funcall (alien:extern-alien "printf" (function c-call:void c-call:c-string c-call:double)) "%f" pi) Still needs some work. compiler/ppc/c-call.lisp: o Make the :arg-tn method for single- and double-float return a list consisting of the Tn for the float register to use and the integer register(s) in which to save the float. compiler/aliencomp.lisp: o Tell the ir2-convert function for %alien-funcall how to handle the list of TN's that the :arg-tn method might return. Copy the float value to the integer register(s) appropriately.
-
rtoy authored
class.
-
- Nov 11, 2005
-
-
rtoy authored
first slot gets the natural alignment, but all subsequent slots get 4-byte alignment, even if the object is a double or long long. o Add EMBEDDED-ALIGNMENT to compute this alignment of embedded objects. o Modify PARSE-ALIEN-RECORD-FIELDS to cause the appropriate alignment of slots in a struct.
-
rtoy authored
cmucl-imp, 2005-11-10, with fix. o Apply Walter's fix, because it was missing the fifth arg to GENERALIZED-PEEKING-MECHANISM. o Change GENERALIZED-PEEKING-MACHINISM to use keyword args instead of optional args, to prevent this kind of bug.
-
- Nov 10, 2005
-
-
rtoy authored
o Add a documentation type for the typed-structure class. pcl/cmucl-documentation.lisp: o Use the new type to add documentation support for structures of type list and vector.
-
- Nov 09, 2005
-
-
rtoy authored
NREVERSE and DELETE. When given vectors, the vectors are modified in-place, so we don't have to use the result. compiler/fndb.lisp: o Functions like NREVERSE and DELETE that take sequences need to check to see if the sequence might be a list or not before warning about if the result is not used. o MERGE needs a fancier :result-not-used function, so disable that for now. compiler/knownfun.lisp: o LIST-FUNCTION-RESULT-NOT-USED creates a function to check is the specified arg is a list and determines if the result is used or not.
-
rtoy authored
-
rtoy authored
ADJUST-ARRAY is used or not.
-
rtoy authored
before asking if it's a complex array.
-
rtoy authored
use an IR1 attribute but allow arbitrary functions to determine if the result is used or not. This allows us to handle SORT and ADJUST-ARRAY depending on the args. Use 19c/boot-2005-11-1.lisp to bootstrap this change. compiler/knownfun.lisp: o Remove IMPORTANT-RESULT attribute. o Add new slot to function-info the hold the function to indicate if the result is not used. o Adjust %defknown with a new keyword arg :result-not-used for the new slot. o Add functions for the result-not-used arg for o SORT-RESULT-NOT-USED-P: non-NIL if the sequence might be a list. o ADJUST-ARRAY-RESULT-NOT-USED-P: non-NIL if the array is not known to be adjustable. o FUNCTION-RESULT-NOT-USED-P: non-NIL if function result must be used (for functions like nreverse). compiler/ir1opt.lisp: o Remove now unused function CHECK-IMPORTANT-RESULT o Add check in IR1-OPTIMIZE-COMBINATION to see if function result should be used. compiler/fndb.lisp: o Remove IMPORTANT-RESULT attribute and replace with :result-not-used.
-
- Nov 08, 2005
-
-
rtoy authored
in the 19c release. o Move the new stuff to the new file, release-19d.txt.
-
rtoy authored
#P(<make-pathname args). So most pathnames can be printed readably, even if they have weird components. But we don't handle search-lists and patterns very well because we don't have readable syntax for those. code/sharpm.lisp: o Make the #P reader accept lists and apply make-pathname on them to create the pathname code/pathname.lisp: o If a pathname has no namestring, then try to print out the pathname object using #P(foo) syntax, if possible. If not possible, just print out the pathname unreadably, as we used to. o Put some conditional newlines when printing out unprintable pathnames so it wraps a bit better. (Needs work.)
-