summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>2002-08-03 23:23:49 +0000
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>2002-08-03 23:23:49 +0000
commit597667c59de2ef2fcaa44663e444b1f6350db4d0 (patch)
tree90f41a913b41e43406c207508284a0c3f907d3a8
parent42721db07c36e472f5eb5f9f356e55be2fb61f38 (diff)
downloadgcc-597667c59de2ef2fcaa44663e444b1f6350db4d0.tar.gz
* config/rs6000/rs6000.md (movsi_internal1): Add nop mnemonic.
(movhi_internal): Same. (movqi_internal): Same. (movdi_internal64): Same. * config/rs6000/t-ppccomm (MULTILIB_MATCHES_FLOAT): Add mcpu=405. * config/rs6000/xcoff.h (SKIP_ASM_OP): Define. (ASM_OUTPUT_SKIP): Use it. SIZE unsigned. (COMMON_ASM_OP): Define. (ASM_OUTPUT_ALIGNED_COMMON): Use it. SIZE unsigned. Use ALIGN parameter. (LOCAL_COMMON_ASM_OP): Define. (ASM_OUTPUT_LOCAL): Use it. SIZE unsigned. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56011 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog17
-rw-r--r--gcc/config/rs6000/rs6000.md12
-rw-r--r--gcc/config/rs6000/t-ppccomm1
-rw-r--r--gcc/config/rs6000/xcoff.h25
4 files changed, 41 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 53245bad17e..4fd7becf198 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,20 @@
+2002-08-03 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.md (movsi_internal1): Add nop mnemonic.
+ (movhi_internal): Same.
+ (movqi_internal): Same.
+ (movdi_internal64): Same.
+
+ * config/rs6000/t-ppccomm (MULTILIB_MATCHES_FLOAT): Add mcpu=405.
+
+ * config/rs6000/xcoff.h (SKIP_ASM_OP): Define.
+ (ASM_OUTPUT_SKIP): Use it. SIZE unsigned.
+ (COMMON_ASM_OP): Define.
+ (ASM_OUTPUT_ALIGNED_COMMON): Use it. SIZE unsigned.
+ Use ALIGN parameter.
+ (LOCAL_COMMON_ASM_OP): Define.
+ (ASM_OUTPUT_LOCAL): Use it. SIZE unsigned.
+
2002-08-03 Roger Sayle <roger@eyesopen.com>
* builtins.def: Define new builtin functions exp, expf, expl,
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 5aeb34f65e1..dd1cad7353b 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -8197,7 +8197,7 @@
mt%0 %1
mt%0 %1
mt%0 %1
- cror 0,0,0"
+ {cror 0,0,0|nop}"
[(set_attr "type" "*,*,load,store,*,*,*,*,*,*,mtjmpr,*,*")
(set_attr "length" "4,4,4,4,4,4,8,4,4,4,4,4,4")])
@@ -8250,7 +8250,7 @@
""
"{ rs6000_emit_move (operands[0], operands[1], HImode); DONE; }")
-(define_insn ""
+(define_insn "*movhi_internal"
[(set (match_operand:HI 0 "nonimmediate_operand" "=r,r,m,r,r,*q,*c*l,*h")
(match_operand:HI 1 "input_operand" "r,m,r,i,*h,r,r,0"))]
"gpc_reg_operand (operands[0], HImode)
@@ -8263,7 +8263,7 @@
mf%1 %0
mt%0 %1
mt%0 %1
- cror 0,0,0"
+ {cror 0,0,0|nop}"
[(set_attr "type" "*,load,store,*,*,*,mtjmpr,*")])
(define_expand "movqi"
@@ -8272,7 +8272,7 @@
""
"{ rs6000_emit_move (operands[0], operands[1], QImode); DONE; }")
-(define_insn ""
+(define_insn "*movqi_internal"
[(set (match_operand:QI 0 "nonimmediate_operand" "=r,r,m,r,r,*q,*c*l,*h")
(match_operand:QI 1 "input_operand" "r,m,r,i,*h,r,r,0"))]
"gpc_reg_operand (operands[0], QImode)
@@ -8285,7 +8285,7 @@
mf%1 %0
mt%0 %1
mt%0 %1
- cror 0,0,0"
+ {cror 0,0,0|nop}"
[(set_attr "type" "*,load,store,*,*,*,mtjmpr,*")])
;; Here is how to move condition codes around. When we store CC data in
@@ -8967,7 +8967,7 @@
stfd%U0%X0 %1,%0
mf%1 %0
mt%0 %1
- cror 0,0,0"
+ {cror 0,0,0|nop}"
[(set_attr "type" "*,load,store,*,*,*,*,fp,fpload,fpstore,*,mtjmpr,*")
(set_attr "length" "4,4,4,4,4,20,4,4,4,4,4,4,4")])
diff --git a/gcc/config/rs6000/t-ppccomm b/gcc/config/rs6000/t-ppccomm
index 7570af4c641..f4fcdce60a9 100644
--- a/gcc/config/rs6000/t-ppccomm
+++ b/gcc/config/rs6000/t-ppccomm
@@ -27,6 +27,7 @@ tramp.S: $(srcdir)/config/rs6000/tramp.asm
# Switch synonyms
MULTILIB_MATCHES_FLOAT = msoft-float=mcpu?401 \
msoft-float=mcpu?403 \
+ msoft-float=mcpu?405 \
msoft-float=mcpu?ec603e \
msoft-float=mcpu?801 \
msoft-float=mcpu?821 \
diff --git a/gcc/config/rs6000/xcoff.h b/gcc/config/rs6000/xcoff.h
index 0f70e8c25b5..6f968805083 100644
--- a/gcc/config/rs6000/xcoff.h
+++ b/gcc/config/rs6000/xcoff.h
@@ -353,19 +353,26 @@ toc_section () \
/* This is how to advance the location counter by SIZE bytes. */
+#define SKIP_ASM_OP "\t.space "
+
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
- fprintf (FILE, "\t.space %d\n", (SIZE))
+ fprintf (FILE, "%s%u\n", SKIP_ASM_OP, (SIZE))
/* This says how to output an assembler line
to define a global common symbol. */
-#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGNMENT) \
- do { fputs ("\t.comm ", (FILE)); \
+#define COMMON_ASM_OP "\t.comm "
+
+#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
+ do { fputs (COMMON_ASM_OP, (FILE)); \
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
- if ( (SIZE) > 4) \
- fprintf ((FILE), ",%d,3\n", (SIZE)); \
+ if ((ALIGN) > 32) \
+ fprintf ((FILE), ",%u,%u\n", (SIZE), \
+ exact_log2 ((ALIGN) / BITS_PER_UNIT)); \
+ else if ((SIZE) > 4) \
+ fprintf ((FILE), ",%u,3\n", (SIZE)); \
else \
- fprintf ((FILE), ",%d\n", (SIZE)); \
+ fprintf ((FILE), ",%u\n", (SIZE)); \
} while (0)
/* This says how to output an assembler line
@@ -374,10 +381,12 @@ toc_section () \
alignment after preceding TOC section if it was aligned
for 64-bit mode. */
+#define LOCAL_COMMON_ASM_OP "\t.lcomm "
+
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
- do { fputs ("\t.lcomm ", (FILE)); \
+ do { fputs (LOCAL_COMMON_ASM_OP, (FILE)); \
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
- fprintf ((FILE), ",%d,%s\n", (TARGET_32BIT ? (SIZE) : (ROUNDED)), \
+ fprintf ((FILE), ",%u,%s\n", (TARGET_32BIT ? (SIZE) : (ROUNDED)), \
xcoff_bss_section_name); \
} while (0)