diff options
author | YamaArashi <shadow962@live.com> | 2016-04-29 11:23:07 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-04-29 11:23:07 -0700 |
commit | b1cbd27e7559a8eece0079ecb76918a11aeb6e9d (patch) | |
tree | d8c168af313bac2ada39929862be0e641492995a /gcc | |
parent | 8d0725156ab8f173bebdefd4db6deb84b85c1918 (diff) |
remove caller super-interworking
Diffstat (limited to 'gcc')
-rwxr-xr-x | gcc/thumb.h | 8 | ||||
-rwxr-xr-x | gcc/thumb.md | 24 |
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 "" ""))] |