David Edelsohn 9f0076e547 rs6000.md (UNSPEC_SYNC, [...]): New.
* config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_LWSYNC,
        UNSPEC_ISYNC, UNSPEC_SYNC_OP, UNSPEC_ATOMIC, UNSPEC_CMPXCHG,
        UNSPEC_XCHG, UNSPEC_AND): New.
        (UNSPECV_ATOMIC, UNSPECV_SYNC, UNSPECV_SYNC_OP, UNSPECV_CMPXCHG,
        UNSPECV_LWSYNC, UNSPECV_ISYNC): Delete.
        * config/rs6000/sync.md (FETCHOP): New code macro.
        (fetchop_name, fetchop_pred, fetchopsi_constr, fetchopdi_constr):
        New code attrs.
        (memory_barrier, sync_internal): Use unspec instead of unspec_volatile.
        (sync_compare_and_swap<mode>): Same.
        (sync_lock_test_and_set<mode>): Same.
        (sync_<fetchop><mode>, sync_nand<mode>): Only use rs6000_emit_sync
        for QImode and HImode, and not PPC405.
        (sync_old_<fetchop><mode>, sync_old_nand<mode>): Same.
        (sync_new_<fetchop><mode>, sync_new_nand<mode>): Same.
        (sync_<fetchop>{si,di}_internal): New.
        (sync_nand{si,di}_internal): New.
        (sync_old_<fetchop>{si,di}_internal): New.
        (sync_old_nand{si,di}_internal): New
        (sync_new_<fetchop>{si,di}_internal): New.
        (sync_new_nand{si,di}_internal): New.
        (atomic_and{si,di}): New.
        (sync_new_nand{si,di}_internal): New.
        (atomic_and{si,di}): New.
        (sync_add<mode>_internal): Delete.
        (sync_addshort_internal): Use unspec instead of unspec_volatile.
        (sync_sub<mode>_internal): Delte.
        (sync_subshort_internal): New.
        (sync_andsi_internal): Use unspec instead of unspec_volatile.
        (sync_anddi_internal): Delete.
        (sync_boolsi_internal): Use unspec instead of unspec_volatile.
        (sync_booldi_internal): Delete.
        (sync_boolc<mode>_internal): Delete.
        (sync_boolcshort_internal): Use unspec instead of unspec_volatile.
        (sync_boolc<mode>_internal2): Delete.
        (sync_boolcc<mode>_internal): Delete.
        (isync, lwsync): Use unspec instead of unspec_volatile.
        * config/rs6000/rs6000.c (rs6000_emit_sync): Implement MINUS.
        Revert UNSPEC_VOLATILE.
        (rs6000_split_atomic_op): New.
        * config/rs6000/rs6000-protos.h (rs6000_split_atomic_op): Declare.

From-SVN: r102049
2005-07-14 21:44:38 -04:00
..
2005-06-25 01:22:41 +00:00
2005-07-03 01:38:49 +01:00
2005-07-14 23:18:47 +00:00
2005-06-25 01:22:41 +00:00
2005-07-08 05:51:06 +00:00
2005-06-25 01:22:41 +00:00
2005-07-08 05:51:06 +00:00
2005-07-08 05:51:06 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00
2005-06-25 01:22:41 +00:00

This directory contains machine-specific files for the GNU C compiler.
It has a subdirectory for each basic CPU type.
The only files in this directory itself
are some .h files that pertain to particular operating systems
and are used for more than one CPU type.