Commit 13e58269 by Ulrich Weigand Committed by Ulrich Weigand

s390.c (pool_stop_uid, [...]): Delete.

	* config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
	check_and_change_labels, s390_final_chunkify): Delete.
	(s390_split_branches, s390_chunkify_pool): New functions.
	(s390_function_prologue): Call them.

	* config/s390/s390.h (S390_REL_MAX): Delete.
	(S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.

	* config/s390/s390.md (cjump, icjump, jump): Fix length
	attribute calculation.

From-SVN: r49797
parent 34d1b01d
2002-02-16 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
check_and_change_labels, s390_final_chunkify): Delete.
(s390_split_branches, s390_chunkify_pool): New functions.
(s390_function_prologue): Call them.
* config/s390/s390.h (S390_REL_MAX): Delete.
(S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
* config/s390/s390.md (cjump, icjump, jump): Fix length
attribute calculation.
2002-02-15 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
......
......@@ -1330,9 +1330,8 @@ extern int s390_nr_constants;
/* Function is splitted in chunk, if literal pool could overflow
Value need to be lowered, if problems with displacement overflow. */
#define S390_REL_MAX 55000
#define S390_CHUNK_MAX 0x2000
#define S390_CHUNK_OV 0x8000
#define S390_CHUNK_MAX 0xe00
#define S390_CHUNK_OV 0x1000
#define S390_POOL_MAX 0xe00
#define ASM_OUTPUT_POOL_PROLOGUE(FILE, FUNNAME, fndecl, size) \
......
......@@ -5660,15 +5660,21 @@
""
"*
{
if (get_attr_length (insn) == 4 || !TARGET_64BIT)
return \"j%C1\\t%l0\";
if (get_attr_length (insn) == 4)
return \"j%C1\\t%l0\";
else if (TARGET_64BIT)
return \"jg%C1\\t%l0\";
else
return \"jg%C1\\t%l0\";
abort ();
}"
[(set_attr "op_type" "RI")
(set (attr "length") (if_then_else
(lt (abs (minus (pc) (match_dup 0))) (const_int 60000))
(const_int 4) (const_int 6)))])
(set (attr "length")
(cond [(lt (abs (minus (pc) (match_dup 0))) (const_int 60000))
(const_int 4)
(ne (symbol_ref "TARGET_64BIT") (const_int 0))
(const_int 6)
(eq (symbol_ref "flag_pic") (const_int 0))
(const_int 6)] (const_int 8)))])
(define_insn "*cjump_long"
[(set (pc)
......@@ -5703,15 +5709,21 @@
""
"*
{
if (get_attr_length (insn) == 4 || !TARGET_64BIT)
return \"j%D1\\t%l0\";
if (get_attr_length (insn) == 4)
return \"j%D1\\t%l0\";
else if (TARGET_64BIT)
return \"jg%D1\\t%l0\";
else
return \"jg%D1\\t%l0\";
abort ();
}"
[(set_attr "op_type" "RI")
(set (attr "length") (if_then_else
(lt (abs (minus (pc) (match_dup 0))) (const_int 60000))
(const_int 4) (const_int 6)))])
(set (attr "length")
(cond [(lt (abs (minus (pc) (match_dup 0))) (const_int 60000))
(const_int 4)
(ne (symbol_ref "TARGET_64BIT") (const_int 0))
(const_int 6)
(eq (symbol_ref "flag_pic") (const_int 0))
(const_int 6)] (const_int 8)))])
(define_insn "*icjump_long"
[(set (pc)
......@@ -5794,15 +5806,21 @@
""
"*
{
if (get_attr_length (insn) == 4 || !TARGET_64BIT)
return \"j\\t%l0\";
if (get_attr_length (insn) == 4)
return \"j\\t%l0\";
else if (TARGET_64BIT)
return \"jg\\t%l0\";
else
return \"jg\\t%l0\";
abort ();
}"
[(set_attr "op_type" "RI")
(set (attr "length") (if_then_else
(lt (abs (minus (pc) (match_dup 0))) (const_int 60000))
(const_int 4) (const_int 6)))])
(set (attr "length")
(cond [(lt (abs (minus (pc) (match_dup 0))) (const_int 60000))
(const_int 4)
(ne (symbol_ref "TARGET_64BIT") (const_int 0))
(const_int 6)
(eq (symbol_ref "flag_pic") (const_int 0))
(const_int 6)] (const_int 8)))])
;
; indirect-jump instruction pattern(s).
......
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