- 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.)
-
- Nov 07, 2005
-
-
rtoy authored
If the parameter d is omitted, ... except that if the fraction to be printed is zero then a single zero digit should appear after the decimal point. Make it so.
-
rtoy authored
-
rtoy authored
-
rtoy authored
given. We now compute the length more carefully, only checking if to see that the list has the desired minumum and maximum (if applicable) length. This bug was found with ironclad 0.10. (Remove DOTTED-LIST-LENGTH later. We need it now to make bootstrapping easier. I'm lazy.)
-