Commit e34eaae5 by David Edelsohn Committed by David Edelsohn

rs6000.md (movsi_internal1): Add nop mnemonic.

        * 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
parent e7b489c8
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> 2002-08-03 Roger Sayle <roger@eyesopen.com>
* builtins.def: Define new builtin functions exp, expf, expl, * builtins.def: Define new builtin functions exp, expf, expl,
......
...@@ -8197,7 +8197,7 @@ ...@@ -8197,7 +8197,7 @@
mt%0 %1 mt%0 %1
mt%0 %1 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 "type" "*,*,load,store,*,*,*,*,*,*,mtjmpr,*,*")
(set_attr "length" "4,4,4,4,4,4,8,4,4,4,4,4,4")]) (set_attr "length" "4,4,4,4,4,4,8,4,4,4,4,4,4")])
...@@ -8250,7 +8250,7 @@ ...@@ -8250,7 +8250,7 @@
"" ""
"{ rs6000_emit_move (operands[0], operands[1], HImode); DONE; }") "{ 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") [(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"))] (match_operand:HI 1 "input_operand" "r,m,r,i,*h,r,r,0"))]
"gpc_reg_operand (operands[0], HImode) "gpc_reg_operand (operands[0], HImode)
...@@ -8263,7 +8263,7 @@ ...@@ -8263,7 +8263,7 @@
mf%1 %0 mf%1 %0
mt%0 %1 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 "type" "*,load,store,*,*,*,mtjmpr,*")])
(define_expand "movqi" (define_expand "movqi"
...@@ -8272,7 +8272,7 @@ ...@@ -8272,7 +8272,7 @@
"" ""
"{ rs6000_emit_move (operands[0], operands[1], QImode); DONE; }") "{ 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") [(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"))] (match_operand:QI 1 "input_operand" "r,m,r,i,*h,r,r,0"))]
"gpc_reg_operand (operands[0], QImode) "gpc_reg_operand (operands[0], QImode)
...@@ -8285,7 +8285,7 @@ ...@@ -8285,7 +8285,7 @@
mf%1 %0 mf%1 %0
mt%0 %1 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 "type" "*,load,store,*,*,*,mtjmpr,*")])
;; Here is how to move condition codes around. When we store CC data in ;; Here is how to move condition codes around. When we store CC data in
...@@ -8967,7 +8967,7 @@ ...@@ -8967,7 +8967,7 @@
stfd%U0%X0 %1,%0 stfd%U0%X0 %1,%0
mf%1 %0 mf%1 %0
mt%0 %1 mt%0 %1
cror 0,0,0" {cror 0,0,0|nop}"
[(set_attr "type" "*,load,store,*,*,*,*,fp,fpload,fpstore,*,mtjmpr,*") [(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")]) (set_attr "length" "4,4,4,4,4,20,4,4,4,4,4,4,4")])
......
...@@ -27,6 +27,7 @@ tramp.S: $(srcdir)/config/rs6000/tramp.asm ...@@ -27,6 +27,7 @@ tramp.S: $(srcdir)/config/rs6000/tramp.asm
# Switch synonyms # Switch synonyms
MULTILIB_MATCHES_FLOAT = msoft-float=mcpu?401 \ MULTILIB_MATCHES_FLOAT = msoft-float=mcpu?401 \
msoft-float=mcpu?403 \ msoft-float=mcpu?403 \
msoft-float=mcpu?405 \
msoft-float=mcpu?ec603e \ msoft-float=mcpu?ec603e \
msoft-float=mcpu?801 \ msoft-float=mcpu?801 \
msoft-float=mcpu?821 \ msoft-float=mcpu?821 \
......
...@@ -353,19 +353,26 @@ toc_section () \ ...@@ -353,19 +353,26 @@ toc_section () \
/* This is how to advance the location counter by SIZE bytes. */ /* This is how to advance the location counter by SIZE bytes. */
#define SKIP_ASM_OP "\t.space "
#define ASM_OUTPUT_SKIP(FILE,SIZE) \ #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 /* This says how to output an assembler line
to define a global common symbol. */ to define a global common symbol. */
#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGNMENT) \ #define COMMON_ASM_OP "\t.comm "
do { fputs ("\t.comm ", (FILE)); \
#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
do { fputs (COMMON_ASM_OP, (FILE)); \
RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \ RS6000_OUTPUT_BASENAME ((FILE), (NAME)); \
if ( (SIZE) > 4) \ if ((ALIGN) > 32) \
fprintf ((FILE), ",%d,3\n", (SIZE)); \ fprintf ((FILE), ",%u,%u\n", (SIZE), \
exact_log2 ((ALIGN) / BITS_PER_UNIT)); \
else if ((SIZE) > 4) \
fprintf ((FILE), ",%u,3\n", (SIZE)); \
else \ else \
fprintf ((FILE), ",%d\n", (SIZE)); \ fprintf ((FILE), ",%u\n", (SIZE)); \
} while (0) } while (0)
/* This says how to output an assembler line /* This says how to output an assembler line
...@@ -374,10 +381,12 @@ toc_section () \ ...@@ -374,10 +381,12 @@ toc_section () \
alignment after preceding TOC section if it was aligned alignment after preceding TOC section if it was aligned
for 64-bit mode. */ for 64-bit mode. */
#define LOCAL_COMMON_ASM_OP "\t.lcomm "
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \ #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)); \ 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); \ xcoff_bss_section_name); \
} while (0) } while (0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment