---
This doesn't help much right now, but in a number of experimental
branches I've added things in this clause, and I've had to hack
around misidentifying bic as a branch in all of them.
---
 gas-preprocessor.pl | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/gas-preprocessor.pl b/gas-preprocessor.pl
index 1c9a1d5..14c07bf 100755
--- a/gas-preprocessor.pl
+++ b/gas-preprocessor.pl
@@ -480,11 +480,17 @@ foreach my $line (@pass1_lines) {
         $thumb_labels{$1}++;
     }
 
-    if ($line =~ /^\s*((\w+\s*:\s*)?bl?x?(?:..)?(?:\.w)?|\.globl)\s+(\w+)/) {
-        if (exists $thumb_labels{$3}) {
-            print ASMFILE ".thumb_func $3\n";
-        } else {
-            $call_targets{$3}++;
+    if ($line =~ /^\s*((\w+\s*:\s*)?bl?x?(..)?(?:\.w)?|\.globl)\s+(\w+)/) {
+        my $cond = $3;
+        my $label = $4;
+        # Don't interpret bic as b<cc> with ic as conditional code, although
+        # there's no harm in adding the register to @call_targets.
+        if ($cond ne "ic") {
+            if (exists $thumb_labels{$label}) {
+                print ASMFILE ".thumb_func $label\n";
+            } else {
+                $call_targets{$label}++;
+            }
         }
     }
 
-- 
1.8.3.4 (Apple Git-47)

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to