diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2008-04-25 22:49:43 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2008-04-25 22:49:43 +0000 |
commit | 18eff923f5c117fa85a12aca25f66dd792c024bf (patch) | |
tree | d80df2974b278135626f3d2abd27d07911c8a14b | |
parent | ca3b805381cc4dd40d5b6ff7a734ca1fc21c41f7 (diff) |
Prevent user asm statements from being put in delay slots, this avoids
warnings and/or unexpected operation when such statements are multi-insn
macros, such as li/dli. Backported from gcc 3.3.6.
-rw-r--r-- | gnu/usr.bin/gcc/gcc/config/mips/mips.md | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gnu/usr.bin/gcc/gcc/config/mips/mips.md b/gnu/usr.bin/gcc/gcc/config/mips/mips.md index f90722e2eea..4b8529185e6 100644 --- a/gnu/usr.bin/gcc/gcc/config/mips/mips.md +++ b/gnu/usr.bin/gcc/gcc/config/mips/mips.md @@ -104,7 +104,7 @@ (define_attr "length" "" (cond [(eq_attr "type" "branch") (cond [(lt (abs (minus (match_dup 1) (plus (pc) (const_int 4)))) - (const_int 131072)) + (const_int 65536)) (const_int 4) (ne (symbol_ref "flag_pic && ! TARGET_EMBEDDED_PIC") (const_int 0)) @@ -163,7 +163,8 @@ ;; Describe a user's asm statement. (define_asm_attributes - [(set_attr "type" "multi")]) + [(set_attr "type" "multi") + (set_attr "can_delay" "no")]) ;; whether or not generating calls to position independent functions (define_attr "abicalls" "no,yes" @@ -9625,7 +9626,7 @@ move\\t%0,%z4\\n\\ (const_int 0)) (lt (abs (minus (match_dup 0) (plus (pc) (const_int 4)))) - (const_int 131072))) + (const_int 65536))) (const_int 4) (const_int 16)))]) ;; We need a different insn for the mips16, because a mips16 branch |