This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

alpha explicit relocs tweek


Missed these when converting the call patterns.


r~


        * config/alpha/alpha.md (sibcall_osf_1_er): New.
        (sibcall_value_osf_1_er): New.

Index: config/alpha/alpha.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/alpha/alpha.md,v
retrieving revision 1.166
diff -c -p -d -r1.166 alpha.md
*** alpha.md	2001/12/12 06:40:27	1.166
--- alpha.md	2001/12/16 05:38:30
*************** fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi
*** 4925,4935 ****
  
  ;; Note that the DEC assembler expands "jmp foo" with $at, which
  ;; doesn't do what we want.
  (define_insn "*sibcall_osf_1"
    [(call (mem:DI (match_operand:DI 0 "symbolic_operand" "R,s"))
  	 (match_operand 1 "" ""))
     (use (reg:DI 29))]
!   "TARGET_ABI_OSF"
    "@
     br $31,$%0..ng
     lda $27,%0\;jmp $31,($27),%0"
--- 4925,4946 ----
  
  ;; Note that the DEC assembler expands "jmp foo" with $at, which
  ;; doesn't do what we want.
+ (define_insn "*sibcall_osf_1_er"
+   [(call (mem:DI (match_operand:DI 0 "symbolic_operand" "R,s"))
+ 	 (match_operand 1 "" ""))
+    (use (reg:DI 29))]
+   "TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF"
+   "@
+    br $31,$%0..ng
+    ldq $27,%0($29)\t\t!literal!%#\;jmp $31,($27),%0\t\t!lituse_jsr!%#"
+   [(set_attr "type" "jsr")
+    (set_attr "length" "*,8")])
+ 
  (define_insn "*sibcall_osf_1"
    [(call (mem:DI (match_operand:DI 0 "symbolic_operand" "R,s"))
  	 (match_operand 1 "" ""))
     (use (reg:DI 29))]
!   "! TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF"
    "@
     br $31,$%0..ng
     lda $27,%0\;jmp $31,($27),%0"
*************** fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi
*** 6920,6931 ****
    [(set_attr "type" "jsr")
     (set_attr "length" "12,*,16")])
  
  (define_insn "*sibcall_value_osf_1"
    [(set (match_operand 0 "" "")
  	(call (mem:DI (match_operand:DI 1 "symbolic_operand" "R,s"))
  	      (match_operand 2 "" "")))
     (use (reg:DI 29))]
!   "TARGET_ABI_OSF"
    "@
     br $31,$%1..ng
     lda $27,%1\;jmp $31,($27),%1"
--- 6931,6954 ----
    [(set_attr "type" "jsr")
     (set_attr "length" "12,*,16")])
  
+ (define_insn "*sibcall_value_osf_1_er"
+   [(set (match_operand 0 "" "")
+ 	(call (mem:DI (match_operand:DI 1 "symbolic_operand" "R,s"))
+ 	      (match_operand 2 "" "")))
+    (use (reg:DI 29))]
+   "TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF"
+   "@
+    br $31,$%1..ng
+    ldq $27,%1($29)\t\t!literal!%#\;jmp $31,($27),%1\t\t!lituse_jsr!%#"
+   [(set_attr "type" "jsr")
+    (set_attr "length" "*,8")])
+ 
  (define_insn "*sibcall_value_osf_1"
    [(set (match_operand 0 "" "")
  	(call (mem:DI (match_operand:DI 1 "symbolic_operand" "R,s"))
  	      (match_operand 2 "" "")))
     (use (reg:DI 29))]
!   "! TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF"
    "@
     br $31,$%1..ng
     lda $27,%1\;jmp $31,($27),%1"


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]