diff options
author | Mark Harris <mark.hsj@gmail.com> | 2017-02-05 03:57:41 +0300 |
---|---|---|
committer | Mark Harris <mark.hsj@gmail.com> | 2017-02-05 04:23:46 +0300 |
commit | c5a84df8fdaaeb383401362f3ae57224d10ce300 (patch) | |
tree | e6a4681b97e9b22bb7ab8bcf8fa1ce48e8d1cfe4 | |
parent | feabcdc6a4e81baedbf94b06cd07bf356b3c8486 (diff) |
arm2gnu.pl: Fix GNU ARM .type directive
Broken by 76e831d. Without the .type directive, SIGILL may be produced
if the C code is compiled in Thumb mode, because the compiler may assume
that the asm symbol is also Thumb and call it using a BL instruction.
-rwxr-xr-x | celt/arm/arm2gnu.pl | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/celt/arm/arm2gnu.pl b/celt/arm/arm2gnu.pl index 6c922ac8..a2895f74 100755 --- a/celt/arm/arm2gnu.pl +++ b/celt/arm/arm2gnu.pl @@ -164,11 +164,11 @@ while (<>) { $prefix = ""; if ($proc) { - $prefix = $prefix.sprintf("\t.type\t%s, %%function; ",$proc) unless ($apple); + $prefix = $prefix.sprintf("\t.type\t%s, %%function", $proc) unless ($apple); # Make sure we $prefix isn't empty here (for the $apple case). # We handle mangling the label here, make sure it doesn't match # the label handling below (if $prefix would be empty). - $prefix = "; "; + $prefix = $prefix."; "; push(@proc_stack, $proc); s/^[A-Za-z_\.]\w+/$symprefix$&:/; } |