/[cmucl]/src/lisp/ppc-arch.c
ViewVC logotype

Log of /src/lisp/ppc-arch.c

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (annotate)
Sticky Tag:

Revision 1.13.4.1 - (view) (annotate) - [select for diffs]
Fri Dec 19 01:31:34 2008 UTC (5 years, 3 months ago) by rtoy
Branch: unicode-utf16-extfmt-branch
CVS Tags: unicode-snapshot-2009-05, unicode-snapshot-2009-06, unicode-utf16-extfmt-2009-03-27, unicode-utf16-extfmt-2009-06-11, unicode-utf16-extfmts-sync-2008-12
Changes since 1.13: +2 -2 lines
Diff to previous 1.13 , to next main 1.14
Merge changes from utf16 branch to update to snapshot 2008-12.

Revision 1.13.2.1 - (view) (annotate) - [select for diffs]
Thu Dec 18 21:50:19 2008 UTC (5 years, 3 months ago) by rtoy
Branch: unicode-utf16-branch
CVS Tags: unicode-utf16-char-support-2009-03-25, unicode-utf16-char-support-2009-03-26, unicode-utf16-sync-2008-12, unicode-utf16-sync-label-2009-03-16
Changes since 1.13: +2 -2 lines
Diff to previous 1.13 , to next main 1.14
Merge Snapshot 2008-12 to this branch.  Some tweaks needed in
boot-2008-05-cross-unicode-x86.lisp and the Config files.  FreeBSD and
Darwin/x86 untested, but Linux and Solaris build ok.

Revision 1.14 - (view) (annotate) - [select for diffs]
Wed Nov 12 15:04:24 2008 UTC (5 years, 5 months ago) by rtoy
Branch: MAIN
CVS Tags: GIT-CONVERSION, HEAD, RELEASE_19f, RELEASE_20a, RELEASE_20b, amd64-dd-start, cross-sol-x86-2010-12-20, cross-sol-x86-base, cross-sol-x86-merged, cross-sparc-branch-base, intl-2-branch-base, intl-branch-2010-03-18-1300, intl-branch-base, intl-branch-working-2010-02-11-1000, intl-branch-working-2010-02-19-1000, label-2009-03-16, label-2009-03-25, merge-sse2-packed, merge-with-19f, merged-unicode-utf16-extfmt-2009-06-11, portable-clx-base, portable-clx-import-2009-06-16, post-merge-intl-branch, pre-merge-intl-branch, release-19f-base, release-19f-pre1, release-20a-base, release-20a-pre1, release-20b-pre1, release-20b-pre2, snapshot-2008-12, snapshot-2009-01, snapshot-2009-02, snapshot-2009-04, snapshot-2009-05, snapshot-2009-07, snapshot-2009-08, snapshot-2009-11, snapshot-2009-12, snapshot-2010-01, snapshot-2010-02, snapshot-2010-03, snapshot-2010-04, snapshot-2010-05, snapshot-2010-06, snapshot-2010-07, snapshot-2010-08, snapshot-2010-11, snapshot-2010-12, snapshot-2011-01, snapshot-2011-02, snapshot-2011-03, snapshot-2011-04, snapshot-2011-06, snapshot-2011-07, snapshot-2011-09, sparc-tramp-assem-2010-07-19, sparc-tramp-assem-base, unicode-string-buffer-base, unicode-string-buffer-impl-base
Branch point for: RELEASE-19F-BRANCH, RELEASE-20A-BRANCH, RELEASE-20B-BRANCH, amd64-dd-branch, cross-sol-x86-branch, cross-sparc-branch, intl-2-branch, intl-branch, portable-clx-branch, sparc-tramp-assem-branch, unicode-string-buffer-branch, unicode-string-buffer-impl-branch
Changes since 1.13: +2 -2 lines
Diff to previous 1.13
Merge in SSE2 changes from sse2-packed-branch (tag
sse2-packed-2008-11-12).

Revision 1.13.6.1 - (view) (annotate) - [select for diffs]
Tue Sep 30 17:50:11 2008 UTC (5 years, 6 months ago) by rtoy
Branch: sse2-branch
CVS Tags: sse2-checkpoint-2008-10-01, sse2-merge-with-2008-10, sse2-merge-with-2008-11, sse2-packed-2008-11-12, sse2-packed-base
Branch point for: sse2-packed-branch
Changes since 1.13: +2 -2 lines
Diff to previous 1.13 , to next main 1.14
Change arch_init everywhere (almost) to take the fpu_mode_t argument.
Basically ignored everywhere except for x86.

Revision 1.13 - (view) (annotate) - [select for diffs]
Wed Mar 19 09:17:13 2008 UTC (6 years ago) by cshapiro
Branch: MAIN
CVS Tags: snapshot-2008-04, snapshot-2008-05, snapshot-2008-06, snapshot-2008-07, snapshot-2008-08, snapshot-2008-09, snapshot-2008-10, snapshot-2008-11, sse2-base, unicode-utf16-base, unicode-utf16-extfmts-pre-sync-2008-11, unicode-utf16-string-support, unicode-utf16-sync-2008-07, unicode-utf16-sync-2008-09, unicode-utf16-sync-2008-11
Branch point for: sse2-branch, unicode-utf16-branch, unicode-utf16-extfmt-branch
Changes since 1.12: +3 -3 lines
Diff to previous 1.12
Always use prototype style function definitions.  Consistently use the
void keyword to specify empty parameter lists.

Revision 1.12 - (view) (annotate) - [select for diffs]
Mon Jan 28 18:21:04 2008 UTC (6 years, 2 months ago) by rtoy
Branch: MAIN
CVS Tags: release-19e, release-19e-base, release-19e-pre1, release-19e-pre2, snapshot-2008-02, snapshot-2008-03
Branch point for: release-19e-branch
Changes since 1.11: +15 -1 lines
Diff to previous 1.11
Add new interface to ieee754_rem_pio2.  No longer need to pass in an
array. The new function returns 2 new output values.

code/irrat.lisp:
o Rename the original %ieee754-rem-pi/2 to %%ieee754-rem-pi-2.
o Define the new %ieee754-rem-pi/2 function.  This returns the output
  as two output values instead of an array.
o Use the new function.  We should have wrapped the original with
  without-gcing, but we don't have to anymore.

lisp/ppc-arch.c:
lisp/x86-arch.c:
o Implement the new C interface to __ieee754_rem_pio2

lisp/Config.linux_gencgc:
o Use -ffloat-store when compiling e_rem_pio2.c and k_rem_pio2.c, just
  to be sure.

Revision 1.11 - (view) (annotate) - [select for diffs]
Fri Nov 16 05:04:09 2007 UTC (6 years, 5 months ago) by cshapiro
Branch: MAIN
CVS Tags: snapshot-2007-12, snapshot-2008-01
Changes since 1.10: +1 -3 lines
Diff to previous 1.10
The SAVE_CONTEXT macro expands to meaningful code on the SPARC and is
a no-op on all other architectures.  Remove SAVE_CONTEXT references in
places that are not touched by a SPARC target.

Revision 1.10 - (view) (annotate) - [select for diffs]
Sun Jul 15 06:53:34 2007 UTC (6 years, 9 months ago) by cshapiro
Branch: MAIN
CVS Tags: pre-telent-clx, snapshot-2007-08, snapshot-2007-09, snapshot-2007-10, snapshot-2007-11
Changes since 1.9: +2 -2 lines
Diff to previous 1.9
Remove no-op macros.

Revision 1.9 - (view) (annotate) - [select for diffs]
Sun Feb 19 22:56:35 2006 UTC (8 years, 1 month ago) by rtoy
Branch: MAIN
CVS Tags: double-double-array-base, double-double-array-checkpoint, double-double-base, double-double-init-%make-sparc, double-double-init-checkpoint-1, double-double-init-ppc, double-double-init-sparc, double-double-init-sparc-2, double-double-init-x86, double-double-irrat-end, double-double-irrat-start, double-double-reader-base, double-double-reader-checkpoint-1, double-double-sparc-checkpoint-1, release-19d, release-19d-base, release-19d-pre1, release-19d-pre2, snapshot-2006-03, snapshot-2006-04, snapshot-2006-05, snapshot-2006-06, snapshot-2006-07, snapshot-2006-08, snapshot-2006-09, snapshot-2006-10, snapshot-2006-11, snapshot-2006-12, snapshot-2007-01, snapshot-2007-02, snapshot-2007-03, snapshot-2007-04, snapshot-2007-05, snapshot-2007-06, snapshot-2007-07
Branch point for: double-double-array-branch, double-double-branch, double-double-reader-branch, release-19d-branch
Changes since 1.8: +1 -14 lines
Diff to previous 1.8
Remove the unused and bogus check for a valid pc.  The information we
need is in the DAR register.

Revision 1.8 - (view) (annotate) - [select for diffs]
Thu Jan 19 04:53:14 2006 UTC (8 years, 2 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2006-02
Changes since 1.7: +13 -11 lines
Diff to previous 1.7
Oops.  Indent code according to style.

Revision 1.7 - (view) (annotate) - [select for diffs]
Wed Jan 18 15:21:26 2006 UTC (8 years, 2 months ago) by rtoy
Branch: MAIN
Changes since 1.6: +235 -1 lines
Diff to previous 1.6
Merge ppc_gencgc_branch to HEAD.

Revision 1.2.2.6 - (view) (annotate) - [select for diffs]
Sat Jan 14 16:30:11 2006 UTC (8 years, 3 months ago) by rtoy
Branch: ppc_gencgc_branch
Changes since 1.2.2.5: +165 -172 lines
Diff to previous 1.2.2.5 , to branch point 1.2 , to next main 1.14
Indent gencgc stuff according to coding style.

Revision 1.2.2.5 - (view) (annotate) - [select for diffs]
Thu Jan 5 03:27:43 2006 UTC (8 years, 3 months ago) by rtoy
Branch: ppc_gencgc_branch
CVS Tags: ppc_gencgc_snap_2006-01-06
Changes since 1.2.2.4: +4 -4 lines
Diff to previous 1.2.2.4 , to branch point 1.2
Some more changes to gencgc.  With these changes, CLEM (Cyrus Harmon's
matrix package) will compile.  Previously, it was causing gc invariant
lossage during compilation.


src/compiler/ppc/macros.lisp:
o Fix typo in comment.
o Change how pseudo-atomic sets and resets the pseudo-atomic bit.
  Instead of adding/subtracting 4, we "or" in 4, or reset that bit.
  This is what sparc does.

src/lisp/gencgc.c:
o Need to define valid_dynamic_space_pointer function for some
  error-checking (that we aren't currently doing, I think).

src/lisp/gencgc.h:
o Change PAGE_SIZE to 16k. (Still needs more testing.)

src/lisp/ppc-arch.c:
o In sigill_handler, we need to return after the allocation trap is
  handled.  Otherwise, we just blow past everthing and call
  interrupt_handle_now at the end, which isn't what we want.

Revision 1.2.2.4 - (view) (annotate) - [select for diffs]
Mon Dec 19 01:10:14 2005 UTC (8 years, 3 months ago) by rtoy
Branch: ppc_gencgc_branch
CVS Tags: ppc_gencgc_snap_2005-12-17
Changes since 1.2.2.3: +279 -256 lines
Diff to previous 1.2.2.3 , to branch point 1.2
Merge code from main branch of 2005-12-17 to ppc gencgc branch.  Still
doesn't work of course.

Revision 1.6 - (view) (annotate) - [select for diffs]
Sat Dec 17 16:29:13 2005 UTC (8 years, 4 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2006-01
Changes since 1.5: +8 -1 lines
Diff to previous 1.5
Add a few debugging printfs.

Revision 1.5 - (view) (annotate) - [select for diffs]
Thu Sep 15 18:26:52 2005 UTC (8 years, 7 months ago) by rtoy
Branch: MAIN
CVS Tags: release-19c, release-19c-base, release-19c-pre1, snapshot-2005-10, snapshot-2005-11, snapshot-2005-12
Branch point for: release-19c-branch
Changes since 1.4: +279 -264 lines
Diff to previous 1.4
Indent all source files using GNU indent using the config in
.indent.pro.

Revision 1.2.2.3 - (view) (annotate) - [select for diffs]
Sun May 15 20:01:31 2005 UTC (8 years, 11 months ago) by rtoy
Branch: ppc_gencgc_branch
Changes since 1.2.2.2: +55 -6 lines
Diff to previous 1.2.2.2 , to branch point 1.2
Merge snapshot-2005-05 to this branch.

Revision 1.4 - (view) (annotate) - [select for diffs]
Sat Apr 16 02:03:22 2005 UTC (9 years ago) by rtoy
Branch: MAIN
CVS Tags: release-19b-base, release-19b-pre1, release-19b-pre2, snapshot-2005-05, snapshot-2005-06, snapshot-2005-07, snapshot-2005-08, snapshot-2005-09
Branch point for: release-19b-branch
Changes since 1.3: +12 -3 lines
Diff to previous 1.3
New pseudo-atomic scheme that looks more like sparc where we use the
LSB of alloc-tn to denote pseudo-atomic interrupted.  We still need
the flag-gn (hardwired to NL3) as a temporary though because we need
somewhere to store the LSB of alloc-tn so we can trap if it's not
zero.

ppc/macros.lisp:
o New pseudo-atomic macro implementing the change.

lisp/ppc-arch.c:
o Update arch_set_pseudo_atomic_interrupted to set the LSB of
  alloc-tn.
o Catch the TWNEI reg_NL3, 0 instruction that denotes a deferred
  interrupt.

lisp/ppc-assem.S:
o Update assembly to code to set and test pseudo-atomic stuff like the
  pseudo-atomic macro does.

Revision 1.2.2.2 - (view) (annotate) - [select for diffs]
Tue Apr 5 03:41:10 2005 UTC (9 years ago) by rtoy
Branch: ppc_gencgc_branch
CVS Tags: ppc_gencgc_snap_2005-05-14
Changes since 1.2.2.1: +241 -1 lines
Diff to previous 1.2.2.1 , to branch point 1.2
Checkin the current code for gencgc.  This is a basic port of sparc
gencgc for ppc.  This is not yet functional.  Allocation seems to
work, but GC does not.  We're just making a checkpoint now.

compiler/ppc/macros.lisp:
o Update allocation macro to support gencgc.  Need a temp-tn as a
  scratch register for inline allocation.
o Update with-fixed-allocation to use allocation macro correctly for
  gencgc.

assembly/ppc/array.lisp:
o Update for new allocation macro for gencgc.

code/ppc-vm.lisp:
o Define *scavenge-read-only-space*

compiler/ppc/alloc.lisp:
compiler/ppc/array.lisp:
compiler/ppc/call.lisp:
o Update to use new allocation macro for gencgc.

compiler/ppc/parms.lisp:
o Add necessary static symbols to support gencgc.

lisp/Config.ppc_darwin:
o Update to build with gencgc as needed.

lisp/Darwin-os.c:
o Update C code for gencgc.  Mostly for checking if pointer is in the
  dynamic space.
o Many debugging printf's enabled.

lisp/gencgc.c:
o Adjust sparc version appropriately for ppc.
o Enable many gencgc self-checks.

lisp/gencgc.h:
o Update PAGE_SIZE for ppc, which is 4K.

lisp/ppc-arch.c:
o Add necessary code to handle the allocation traps for gencgc.
  Basically ported sparc version for ppc.

lisp/ppc-assem.S:
o The way pseudo-atomic is done has been changed, so make the assembly
  code match.  PA is now more like sparc where the LSB is the
  PA-interrupted bit.
o do_pending_interrupt may need work.

lisp/ppc-validate.h:
o Make the READ_ONLY_SPACE_SIZE right.
o Define CONTROL_STACK_END.

lisp/purify.c:
o Enable debugging printfs
o Adjust purify for gencgc, basically copying sparc version.

Revision 1.3 - (view) (annotate) - [select for diffs]
Fri Mar 18 05:30:50 2005 UTC (9 years, 1 month ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2005-04
Changes since 1.2: +47 -5 lines
Diff to previous 1.2
Port Helmut's trace/known-return to ppc.  Fix some bugs along the way
as well.

lisp/breakpoint.c:
o Enable function-end stuff in compute_offset for DARWIN too.
o Lots of printf's so we can see what's happening on ppc since gdb is
  majorly broken there.

lisp/ppc-assem.S:
o Actually implement the function-end breakpoint template.  Basically
  copied the sparc version, with appropriate mods.

lisp/ppc-arch.c:
o Add TWLLEI_R0 macro to create the appropriate trap instructions that
  we need, and use as appropriate.
o arch_install_breakpoint was actually broken and installed a twllgei
  instruction instead of twllei.
o arch_do_displaced_inst was also broken.  It didn't install the
  after-break-point trap after the breakpoint trap.  And it also
  didn't continue running the code and returned instead.  That's
  wrong.
o The trap_AfterBreakpoint case in sigill_handler was inserting the
  wrong instruction back.  (Probably too much copying of the sparc
  port.)

Revision 1.2.2.1 - (view) (annotate) - [select for diffs]
Sat Feb 12 16:14:15 2005 UTC (9 years, 2 months ago) by rtoy
Branch: ppc_gencgc_branch
Changes since 1.2: +7 -5 lines
Diff to previous 1.2
Change how pseudo-atomic works on Mac OS X.  Instead of using a
separate register for the flag, and using a negative alloc-tn to mean
the pseudo-atomic section was interrupted, we make it more like sparc,
where the pseudo-atomic interrupted is the least signficant bit of
alloc-tn.

* compiler/ppc/macros.lisp:
  o Make the PSEUDO-ATOMIC macro work as desired.

* lisp/ppc-arch.c
  o Set the LSB of alloc-tn when pseudo-atomic is interrupted.
  o Check for the twnei instruction which is now used to see if
    pseudo-atomic was interrupted.

* lisp/ppc/assem.S
  o Use the new pseudo-atomic scheme.

Revision 1.2 - (view) (annotate) - [select for diffs]
Sun Feb 6 19:43:15 2005 UTC (9 years, 2 months ago) by rtoy
Branch: MAIN
CVS Tags: snapshot-2005-03
Branch point for: ppc_gencgc_branch
Changes since 1.1: +152 -1 lines
Diff to previous 1.1
Initial support for linkage-tables on PPC/Darwin.  This is a
relatively straightforward port of the sparc version of
linkage-tables.  Some refinements are probably still needed, as well
as some testing.

Use boot-2005-02-ppc-linkage.lisp to bootstrap this change from the
2005-02 snapshot.

* code/ppc-vm.lisp
  o Add appropriate FOREIGN-SYMBOL-ADDRESS-AUX and FIND-FOREIGN-SYMBOL
    functions for linkage-table.

* compiler/generic/new-genesis.lisp
  o Basically do the same as the sparc port for linkage-tables.
  o need to extern-alien-name on the cold linkages since they C names
    depend on the backend conventions.

* compiler/ppc/alloc.lisp
  o Load "undefined_tramp" appropriately for linkage-tables.

* compiler/ppc/c-call.lisp
  o Define new vops (FOREIGN-SYMBOL-CODE-ADDRESS,
    FOREIGN-SYMBOL-DATA-ADDRESS) for linkage-tables so we can access
    correctly.

* compiler/ppc/cell.lisp
  o Load "closure_tramp" appropriately for linkage-tables
  o Load "undefined_tramp" appropriately for linkage-tables

* compiler/ppc/parms.lisp
  o Put the foreign linkage space start at the end of the static space
    to make it easier to bootstrap.  (We need already mapped memory.)
    We can move this later.
  o Correct TARGET-FOREIGN-LINKAGE-ENTRY-SIZE.
  o Add new static-symbol *linkage-table-data*
  o While were at it, add SPARE-9 and SPARE-0 static symbols so we
    have 10 spares.

* lisp/Config.ppc_darwin
  o Add -DLINKAGE_TABLE to CFLAGS/ASFLAGS if we have linkage-table
    support.

* lisp/Darwin-os.c
  o Add os_dlsym to support linkage-tables.  (This nees a little
    refactoring because we just copied the #defines for dlopen modes.)

* lisp/os-common.c
  o The checking of the linkage tables that is done for sparc almost
    works for ppc, but not quite.  Implement one for ppc.

* lisp/ppc-arch.c
  o Add PPC version of arch_make_jump_entry, arch_make_linkage_entry,
    arch_linkage_entry.

* lisp/ppc-assem.S
  o Add lazy_resolve_linkage to support linkage-tables.  This needs
    some more work.
  o Add undefined_foreign_symbol_trap.  This probably needs work, and
    definitely needs testing.

* lisp/ppc-validate.h
  o Define the start of the linkage space and size.

Revision 1.1 - (view) (annotate) - [select for diffs]
Tue Jul 13 00:26:22 2004 UTC (9 years, 9 months ago) by pmai
Branch: MAIN
CVS Tags: snapshot-2004-08, snapshot-2004-09, snapshot-2004-10, snapshot-2004-11, snapshot-2004-12, snapshot-2005-01, snapshot-2005-02
First merge of the C side of the OS X/Darwin port.  Besides adding Darwin
versions of all the required things, this commit separates the
interrupt handler proper (now interrupt_handle_now_handler) from the
actual work-horse (interrupt_handle_now), which is now only ever called
from the two interrupt handlers, interrupt_handle_now_handler and
maybe_now_maybe_later.  This follows similar changes in SBCL, and is in
fact needed in order to properly use sigreturn in signal handlers, as
required to work around a problem with the G5.

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

  ViewVC Help
Powered by ViewVC 1.1.5