2001-07-31 Daniel Berlin <dan@cgsoftware.com>
commit8eaf2dd13ce1d66007164193fc59e258d40ba18f
authordberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 31 Jul 2001 17:20:20 +0000 (31 17:20 +0000)
committerdberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 31 Jul 2001 17:20:20 +0000 (31 17:20 +0000)
tree189b8e1fd44b8f4e0a7998e44b31d6dc222a856b
parentb9f89fd30af99d65346f3f97ed439965d3eb5f99
2001-07-31  Daniel Berlin  <dan@cgsoftware.com>

PowerPC reorg and support for powerpc64-*-linux*.

Also fixes emitting of constants on 32 bit and 64 bit
platforms.

* config.gcc: powerpc64-*-linux* is a new target.
Things that needed aix.h now also include xcoff.h

* config/rs6000/rs6000.h: Split XCOFF specific stuff into
xcoff.h.
Move AIX specific stuff into aix.h.
(ASM_LONG): Use DOUBLE_INT_ASM_OP if we are on a 64 bit target.
(ASM_OUTPUT_DOUBLE_INT): Ditto.
(TARGET_AIX): Renamed to TARGET_XCOFF, since the AIX ABI is used
with more than just XCOFF now.
(SET_ASM_OP): Remove, now defined where needed.
(FUNCTION_PROLOGUE): New macro definition.
(FUNCTION_EPILOGUE): New macro definition.
(CONST_OK_FOR_LETTER_P): Change N to require that value is
positive, too.
(ASM_OPEN_PAREN, ASM_CLOSE_PAREN): New macro definition.
(PREDICATE_CODES): Added exact_log2_cint_operand,
reg_or_add_cint64_operand, reg_or_sub_cint64_operand.

* config/rs6000/rs6000.c: #ifdef XCOFF debugging info stuff on
XCOFF_DEBUGGING_INFO.
Use DOUBLE_INT_ASM_OP where approriate.
(rs6000_emit_set_long_const): New function.
(rs6000_emit_set_const): New function.
(reg_or_sub_cint64_operand): New function.
(reg_or_add_cint64_operand): New function.
(exact_log2_cint_operand): New function.

* config/rs6000/rs6000.md: Fix emitting of constants.
Fix patterns that were AIX ABI specific, but depended on
!TARGET_ELF (instead of DEFAULT_ABI == ABI_AIX).

* config/rs6000/xcoff.h: New file.

* config/rs6000/linux64.h: New file.

* config/rs6000/darwin.h: Copy needed AIX alignment definitions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44516 138bc75d-0d04-0410-961f-82ee72b054a4
12 files changed:
gcc/ChangeLog
gcc/config.gcc
gcc/config/rs6000/aix.h
gcc/config/rs6000/darwin.h
gcc/config/rs6000/linux.h
gcc/config/rs6000/linux64.h [new file with mode: 0644]
gcc/config/rs6000/rs6000-protos.h
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.h
gcc/config/rs6000/rs6000.md
gcc/config/rs6000/sysv4.h
gcc/config/rs6000/xcoff.h [copied from gcc/config/rs6000/aix.h with 75% similarity]