summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-04-29 11:23:07 -0700
committerYamaArashi <shadow962@live.com>2016-04-29 11:23:07 -0700
commitb1cbd27e7559a8eece0079ecb76918a11aeb6e9d (patch)
treed8c168af313bac2ada39929862be0e641492995a /gcc
parent8d0725156ab8f173bebdefd4db6deb84b85c1918 (diff)
remove caller super-interworking
Diffstat (limited to 'gcc')
-rwxr-xr-xgcc/thumb.h8
-rwxr-xr-xgcc/thumb.md24
2 files changed, 2 insertions, 30 deletions
diff --git a/gcc/thumb.h b/gcc/thumb.h
index e5918a1..88eee88 100755
--- a/gcc/thumb.h
+++ b/gcc/thumb.h
@@ -39,7 +39,6 @@ Boston, MA 02111-1307, USA. */
#define TARGET_VERSION fputs (" (ARM/THUMB:generic)", stderr);
#define ARM_FLAG_THUMB 0x1000 /* same as in arm.h */
-#define THUMB_FLAG_CALLER_SUPER_INTERWORKING 0x80000
/* Nonzero if all call instructions should be indirect. */
#define ARM_FLAG_LONG_CALLS (0x10000) /* same as in arm.h */
@@ -50,11 +49,6 @@ extern int target_flags;
#define TARGET_DEFAULT 0 /* ARM_FLAG_THUMB */
#define TARGET_THUMB_INTERWORK (target_flags & ARM_FLAG_THUMB)
-/* Set if calls via function pointers should assume that their
- destination is non-Thumb aware. */
-#define TARGET_CALLER_INTERWORKING \
- (target_flags & THUMB_FLAG_CALLER_SUPER_INTERWORKING)
-
#define TARGET_LONG_CALLS (target_flags & ARM_FLAG_LONG_CALLS)
/* SUBTARGET_SWITCHES is used to add flags on a per-config basis. */
@@ -66,8 +60,6 @@ extern int target_flags;
{ \
{"thumb-interwork", ARM_FLAG_THUMB}, \
{"no-thumb-interwork", -ARM_FLAG_THUMB}, \
- {"caller-super-interworking", THUMB_FLAG_CALLER_SUPER_INTERWORKING}, \
- {"no-caller-super-interworking", -THUMB_FLAG_CALLER_SUPER_INTERWORKING}, \
{"long-calls", ARM_FLAG_LONG_CALLS, \
"Generate all call instructions as indirect calls"}, \
{"no-long-calls", -ARM_FLAG_LONG_CALLS, ""}, \
diff --git a/gcc/thumb.md b/gcc/thumb.md
index fe37c9c..8cebc50 100755
--- a/gcc/thumb.md
+++ b/gcc/thumb.md
@@ -997,20 +997,9 @@
(define_insn "*call_indirect"
[(call (mem:SI (match_operand:SI 0 "s_register_operand" "l*r"))
(match_operand 1 "" ""))]
- "! TARGET_CALLER_INTERWORKING"
+ ""
"bl\\t_call_via_%0"
[(set_attr "length" "4")])
-;; The non THUMB_INTERWORK, non TARGET_CALLER_INTERWORKING version
-;; used to be: "mov\\tlr,pc\;bx\\t%0", but the mov does not set
-;; the bottom bit of lr so that a function return (using bx)
-;; would switch back into ARM mode...
-
-(define_insn "*call_indirect_interwork"
- [(call (mem:SI (match_operand:SI 0 "s_register_operand" "l*r"))
- (match_operand 1 "" ""))]
- "TARGET_CALLER_INTERWORKING"
- "bl\\t_interwork_call_via_%0"
-[(set_attr "length" "4")])
(define_expand "call_value"
[(set (match_operand 0 "" "")
@@ -1027,20 +1016,11 @@
[(set (match_operand 0 "" "=l")
(call (mem:SI (match_operand:SI 1 "s_register_operand" "l*r"))
(match_operand 2 "" "")))]
- "! TARGET_CALLER_INTERWORKING"
+ ""
"bl\\t_call_via_%1"
[(set_attr "length" "4")])
;; See comment for call_indirect pattern
-(define_insn "*call_value_indirect_interwork"
- [(set (match_operand 0 "" "=l")
- (call (mem:SI (match_operand:SI 1 "s_register_operand" "l*r"))
- (match_operand 2 "" "")))]
- "TARGET_CALLER_INTERWORKING"
- "bl\\t_interwork_call_via_%1"
-[(set_attr "length" "4")])
-
-
(define_insn "*call_insn"
[(call (mem:SI (match_operand:SI 0 "" "i"))
(match_operand:SI 1 "" ""))]