Skip to content
Snippets Groups Projects
Forked from cmucl / cmucl
Source project has a limited visibility.
  • rtoy's avatar
    903edb2a
    Make ppc port look a little more like sparc by making · 903edb2a
    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.
    903edb2a
    History
    Make ppc port look a little more like sparc by making
    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.