*** empty log message ***
From-SVN: r711
This commit is contained in:
parent
58891cf9e6
commit
f3b39ebadc
@ -158,6 +158,7 @@ extern void text_section ();
|
||||
#ifndef HALF_PIC_P
|
||||
#define HALF_PIC_P() 0
|
||||
#define HALF_PIC_ENCODE(DECL)
|
||||
#define HALF_PIC_DECLARE(NAME)
|
||||
#define HALF_PIC_INIT() error ("half-pic init called on systems that don't support it.")
|
||||
#define HALF_PIC_ADDRESS_P(X) 0
|
||||
#define HALF_PIC_PTR(X) X
|
||||
@ -2906,7 +2907,12 @@ do { \
|
||||
in the usual manner as a label (by means of `ASM_OUTPUT_LABEL'). */
|
||||
|
||||
#define ASM_DECLARE_OBJECT_NAME(STREAM, NAME, DECL) \
|
||||
mips_declare_object (STREAM, NAME, "", ":\n", 0);
|
||||
do \
|
||||
{ \
|
||||
mips_declare_object (STREAM, NAME, "", ":\n", 0); \
|
||||
HALF_PIC_DECLARE (NAME); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
|
||||
/* This is how to output a command to make the user-level label named NAME
|
||||
@ -2957,6 +2963,7 @@ do { \
|
||||
STREAM = asm_out_text_file; \
|
||||
\
|
||||
current_function_name = NAME; \
|
||||
HALF_PIC_DECLARE (NAME); \
|
||||
}
|
||||
|
||||
/* This is how to output a reference to a user-level label named NAME.
|
||||
@ -3152,21 +3159,11 @@ do { \
|
||||
}
|
||||
|
||||
|
||||
/* Output before read-only data. */
|
||||
|
||||
#define TEXT_SECTION_ASM_OP ".text"
|
||||
|
||||
/* Output before writable data. */
|
||||
|
||||
#define DATA_SECTION_ASM_OP ".data"
|
||||
|
||||
/* Output before writable short data. */
|
||||
|
||||
#define SDATA_SECTION_ASM_OP ".sdata"
|
||||
|
||||
/* Output before read-only data. */
|
||||
|
||||
#define RDATA_SECTION_ASM_OP ".rdata"
|
||||
/* Define the strings to put out for each section in the object file. */
|
||||
#define TEXT_SECTION_ASM_OP "\t.text" /* instructions */
|
||||
#define DATA_SECTION_ASM_OP "\t.data" /* large data */
|
||||
#define SDATA_SECTION_ASM_OP "\t.sdata" /* small data */
|
||||
#define RDATA_SECTION_ASM_OP "\t.rdata" /* read-only data */
|
||||
#define READONLY_DATA_SECTION rdata_section
|
||||
|
||||
/* What other sections we support other than the normal .data/.text. */
|
||||
|
@ -65,7 +65,7 @@
|
||||
|
||||
;; whether or not an instruction has a mandatory delay slot
|
||||
(define_attr "dslot" "no,yes"
|
||||
(if_then_else (eq_attr "type" "branch,jump,call,load,xfer,hilo,fcmp")
|
||||
(if_then_else (eq_attr "type" "branch,jump,call,load,xfer,hilo,fcmp,pic")
|
||||
(const_string "yes")
|
||||
(const_string "no")))
|
||||
|
||||
@ -1792,7 +1792,30 @@ move\\t%0,%z4\\n\\
|
||||
;; different predicates, because register spilling and other parts of
|
||||
;; the compiler, have memoized the insn number already.
|
||||
|
||||
(define_insn "movsi"
|
||||
(define_expand "movsi"
|
||||
[(set (match_operand:SI 0 "nonimmediate_operand" "")
|
||||
(match_operand:SI 1 "general_operand" ""))]
|
||||
""
|
||||
"
|
||||
{
|
||||
/* If this is a half-pic address being moved to a register, convert the
|
||||
address into a load, so that scheduling and stuff works properly. */
|
||||
|
||||
if (HALF_PIC_P()
|
||||
&& GET_CODE (operands[0]) == REG
|
||||
&& GET_CODE (operands[1]) == SYMBOL_REF
|
||||
&& HALF_PIC_ADDRESS_P (operands[1]))
|
||||
{
|
||||
rtx ptr = HALF_PIC_PTR (operands[1]);
|
||||
if (XSTR (ptr, 0) != XSTR (operands[1], 0))
|
||||
{
|
||||
emit_move_insn (operands[0], gen_rtx (MEM, Pmode, ptr));
|
||||
DONE;
|
||||
}
|
||||
}
|
||||
}")
|
||||
|
||||
(define_insn "movsi_internal"
|
||||
[(set (match_operand:SI 0 "nonimmediate_operand" "=d,d,d,d,d,d,R,m,*d,*fs,*f,*f,*f,*R,*m,*x,*d")
|
||||
(match_operand:SI 1 "general_operand" "d,S,IKL,Mnis,R,m,dJ,dJ,*fs,*d,*f,*R,*m,*f,*f,*d,*x"))]
|
||||
""
|
||||
@ -1891,12 +1914,12 @@ move\\t%0,%z4\\n\\
|
||||
;; Insn generated by block moves
|
||||
|
||||
(define_insn "movstrsi_internal"
|
||||
[(set (match_operand:BLK 0 "memory_operand" "Ro")
|
||||
[(set (match_operand:BLK 0 "memory_operand" "=Ro")
|
||||
(match_operand:BLK 1 "memory_operand" "Ro"))
|
||||
(clobber (match_scratch:SI 4 "d"))
|
||||
(clobber (match_scratch:SI 5 "d"))
|
||||
(clobber (match_scratch:SI 6 "d"))
|
||||
(clobber (match_scratch:SI 7 "d"))
|
||||
(clobber (match_scratch:SI 4 "=d"))
|
||||
(clobber (match_scratch:SI 5 "=d"))
|
||||
(clobber (match_scratch:SI 6 "=d"))
|
||||
(clobber (match_scratch:SI 7 "=d"))
|
||||
(use (match_operand:SI 2 "small_int" "I"))
|
||||
(use (match_operand:SI 3 "small_int" "I"))]
|
||||
""
|
||||
|
@ -64,9 +64,8 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
%{bestGnum}} \
|
||||
%{!mmips-as: \
|
||||
%{v*: -v} \
|
||||
%{pic-none: -noshrlib} %{noshrlib} \
|
||||
%{pic-lib: %{!noshrlib: -warn_nopic}} \
|
||||
%{nostdlib} %{glue}}"
|
||||
%{!noshrlib: %{pic-none: -noshrlib} %{!pic-none: -warn_nopic}} \
|
||||
%{nostdlib} %{noshrlib} %{glue}}"
|
||||
|
||||
#define LIB_SPEC "-lc"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user