Commit 6d0ceb76 by Chen Liqin Committed by Chen Liqin

re PR target/30987 (Problem while compiling gcc for score)

2007-05-23  Chen Liqin  <liqin@sunnorth.com.cn>

	PR target/30987
	* config/score/misc.md (bitclr_c, bitset_c, bittgl_c): remove.
	* config/score/predicate.md (const_pow2, const_npow2): remove.
	* config/score/score.h (ASM_OUTPUT_EXTERNAL): add ASM_OUTPUT_EXTERNAL undef.
	PR target/30474
	* config/score/score.c (score_print_operand): makes sure that only lower 
        bits are used.

From-SVN: r124983
parent b80cca7b
2007-05-23 Chen Liqin <liqin@sunnorth.com.cn>
PR target/30987
* config/score/misc.md (bitclr_c, bitset_c, bittgl_c): remove.
* config/score/predicate.md (const_pow2, const_npow2): remove.
* config/score/score.h (ASM_OUTPUT_EXTERNAL): add ASM_OUTPUT_EXTERNAL undef.
PR target/30474
* config/score/score.c (score_print_operand): makes sure that only lower
bits are used.
2007-05-22 Ian Lance Taylor <iant@google.com> 2007-05-22 Ian Lance Taylor <iant@google.com>
* tree-vrp.c (avoid_overflow_infinity): New static function, * tree-vrp.c (avoid_overflow_infinity): New static function,
......
...@@ -380,38 +380,3 @@ ...@@ -380,38 +380,3 @@
[(set_attr "type" "arith") [(set_attr "type" "arith")
(set_attr "mode" "SI")]) (set_attr "mode" "SI")])
(define_insn "bitclr_c"
[(set (match_operand:SI 0 "register_operand" "=e,d")
(and:SI (match_operand:SI 1 "register_operand" "0,d")
(match_operand:SI 2 "const_npow2")))
(clobber (reg:CC CC_REGNUM))]
""
"@
bitclr! %0, %F2
bitclr.c %0, %1, %F2"
[(set_attr "type" "arith")
(set_attr "mode" "SI")])
(define_insn "bitset_c"
[(set (match_operand:SI 0 "register_operand" "=e,d")
(ior:SI (match_operand:SI 1 "register_operand" "0,d")
(match_operand:SI 2 "const_pow2")))
(clobber (reg:CC CC_REGNUM))]
""
"@
bitset! %0, %E2
bitset.c %0, %1, %E2"
[(set_attr "type" "arith")
(set_attr "mode" "SI")])
(define_insn "bittgl_c"
[(set (match_operand:SI 0 "register_operand" "=e,d")
(xor:SI (match_operand:SI 1 "register_operand" "0,d")
(match_operand:SI 2 "const_pow2")))
(clobber (reg:CC CC_REGNUM))]
""
"@
bittgl! %0, %E2
bittgl.c %0, %1, %E2"
[(set_attr "type" "arith")
(set_attr "mode" "SI")])
...@@ -75,14 +75,3 @@ ...@@ -75,14 +75,3 @@
return IMM_IN_RANGE (INTVAL (op), 15, 1); return IMM_IN_RANGE (INTVAL (op), 15, 1);
}) })
(define_predicate "const_pow2"
(match_code "const_int")
{
return IMM_IS_POW_OF_2 ((unsigned HOST_WIDE_INT) INTVAL (op), 0, 31);
})
(define_predicate "const_npow2"
(match_code "const_int")
{
return IMM_IS_POW_OF_2 (~(unsigned HOST_WIDE_INT) INTVAL (op), 0, 31);
})
...@@ -1167,7 +1167,7 @@ score_print_operand (FILE *file, rtx op, int c) ...@@ -1167,7 +1167,7 @@ score_print_operand (FILE *file, rtx op, int c)
{ {
gcc_assert (code == CONST_INT); gcc_assert (code == CONST_INT);
fprintf (file, HOST_WIDE_INT_PRINT_HEX, fprintf (file, HOST_WIDE_INT_PRINT_HEX,
(unsigned HOST_WIDE_INT) INTVAL (op) >> 16); (INTVAL (op) >> 16) & 0xffff);
} }
else if (c == 'D') else if (c == 'D')
{ {
...@@ -1175,7 +1175,7 @@ score_print_operand (FILE *file, rtx op, int c) ...@@ -1175,7 +1175,7 @@ score_print_operand (FILE *file, rtx op, int c)
{ {
rtx temp = gen_lowpart (SImode, op); rtx temp = gen_lowpart (SImode, op);
gcc_assert (GET_MODE (op) == SFmode); gcc_assert (GET_MODE (op) == SFmode);
fprintf (file, HOST_WIDE_INT_PRINT_HEX, INTVAL (temp)); fprintf (file, HOST_WIDE_INT_PRINT_HEX, INTVAL (temp) & 0xffffffff);
} }
else else
output_addr_const (file, op); output_addr_const (file, op);
......
...@@ -785,6 +785,7 @@ typedef struct score_args ...@@ -785,6 +785,7 @@ typedef struct score_args
output anything and let undefined symbol become external. However output anything and let undefined symbol become external. However
the assembler uses length information on externals to allocate in the assembler uses length information on externals to allocate in
data/sdata bss/sbss, thereby saving exec time. */ data/sdata bss/sbss, thereby saving exec time. */
#undef ASM_OUTPUT_EXTERNAL
#define ASM_OUTPUT_EXTERNAL(STREAM, DECL, NAME) \ #define ASM_OUTPUT_EXTERNAL(STREAM, DECL, NAME) \
score_output_external (STREAM, DECL, NAME) score_output_external (STREAM, DECL, NAME)
......
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