summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2008-04-25 22:49:43 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2008-04-25 22:49:43 +0000
commit18eff923f5c117fa85a12aca25f66dd792c024bf (patch)
treed80df2974b278135626f3d2abd27d07911c8a14b
parentca3b805381cc4dd40d5b6ff7a734ca1fc21c41f7 (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.md7
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