* 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.
From-SVN: r56011
+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,
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")])
""
"{ 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)
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"
""
"{ 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)
mf%1 %0
mt%0 %1
mt%0 %1
- cror 0,0,0"
+ {cror 0,0,0|nop}"
[(set_attr "type" "*,load,store,*,*,*,mtjmpr,*")])
\f
;; Here is how to move condition codes around. When we store CC data in
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")])
# 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 \
/* 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
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)