aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorNick Clifton <nickc@cygnus.com>1998-07-24 11:23:45 +0000
committerNick Clifton <nickc@gcc.gnu.org>1998-07-24 11:23:45 +0000
commit0d1be5835ffeeb5a0320569a02f0dc8a22212052 (patch)
tree8a6c80c3b3f7fb6cc5bc81b945d2d1411d841945 /gcc
parent1bc54bc9554a24e43ce02cfb40e053dc226b38b3 (diff)
downloadgcc-0d1be5835ffeeb5a0320569a02f0dc8a22212052.zip
gcc-0d1be5835ffeeb5a0320569a02f0dc8a22212052.tar.gz
gcc-0d1be5835ffeeb5a0320569a02f0dc8a22212052.tar.bz2
Fix use of USER_LABEL_PREFIX when calling gcc library functions
From-SVN: r21360
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/arm/thumb.c4
-rw-r--r--gcc/config/arm/thumb.h2
-rw-r--r--gcc/config/arm/thumb.md8
4 files changed, 18 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 97b5457..e1613ab 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+Fri Jul 24 11:17:04 1998 Nick Clifton <nickc@cygnus.com>
+
+ * config/arm/thumb.c (thumb_print_operand): Decode %_ in asm
+ strings as the insertion of USER_LABEL_PREFIX.
+ * config/arm/thumb.h (PRINT_OPERAND_PUNCT_VALID_P): Accept _ as a
+ valid code.
+ * config/arm/thumb.md: Use %_ as a prefix to gcc library function
+ calls.
+
Thu Jul 23 18:53:20 1998 Jim Wilson <wilson@cygnus.com>
* dbxout.c (dbxout_range_type): Only call dbxout_type_index for
diff --git a/gcc/config/arm/thumb.c b/gcc/config/arm/thumb.c
index 53ce57c..5ddcc03 100644
--- a/gcc/config/arm/thumb.c
+++ b/gcc/config/arm/thumb.c
@@ -1762,6 +1762,10 @@ thumb_print_operand (f, x, code)
fputs (ASM_COMMENT_START, f);
return;
+ case '_':
+ fputs (USER_LABEL_PREFIX, f);
+ return;
+
case 'D':
if (x)
fputs (thumb_condition_code (x, 1), f);
diff --git a/gcc/config/arm/thumb.h b/gcc/config/arm/thumb.h
index 976fe78..4030e37 100644
--- a/gcc/config/arm/thumb.h
+++ b/gcc/config/arm/thumb.h
@@ -1052,7 +1052,7 @@ int thumb_shiftable_const ();
output_addr_const ((STREAM), (X)); \
}
-#define PRINT_OPERAND_PUNCT_VALID_P(CODE) ((CODE) == '@')
+#define PRINT_OPERAND_PUNCT_VALID_P(CODE) ((CODE) == '@' || ((CODE) == '_'))
/* Emit a special directive when defining a function name.
This is used by the assembler to assit with interworking. */
diff --git a/gcc/config/arm/thumb.md b/gcc/config/arm/thumb.md
index 65b92ce..6886b8e 100644
--- a/gcc/config/arm/thumb.md
+++ b/gcc/config/arm/thumb.md
@@ -990,7 +990,7 @@
[(call (mem:SI (match_operand:SI 0 "register_operand" "l*r"))
(match_operand 1 "" ""))]
"! TARGET_CALLER_INTERWORKING"
- "bl\\t__call_via_%0"
+ "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
@@ -1001,7 +1001,7 @@
[(call (mem:SI (match_operand:SI 0 "register_operand" "l*r"))
(match_operand 1 "" ""))]
"TARGET_CALLER_INTERWORKING"
- "bl\\t__interwork_call_via_%0"
+ "bl\\t%__interwork_call_via_%0"
[(set_attr "length" "4")])
(define_expand "call_value"
@@ -1016,7 +1016,7 @@
(call (mem:SI (match_operand:SI 1 "register_operand" "l*r"))
(match_operand 2 "" "")))]
"! TARGET_CALLER_INTERWORKING"
- "bl\\t__call_via_%1"
+ "bl\\t%__call_via_%1"
[(set_attr "length" "4")])
;; See comment for call_indirect pattern
@@ -1025,7 +1025,7 @@
(call (mem:SI (match_operand:SI 1 "register_operand" "l*r"))
(match_operand 2 "" "")))]
"TARGET_CALLER_INTERWORKING"
- "bl\\t__interwork_call_via_%1"
+ "bl\\t%__interwork_call_via_%1"
[(set_attr "length" "4")])