For ELF targets, the assembler keeps track of which words are
actual instructions, and which are data - and the disassembler
shows them differently depending on this. For other object file
formats, there's no difference. Thus, for armasm for targeting
COFF, we can treat this just like any regular integer.

Produce either a 16 or 32 bit value depending on whether we
are assembling thumb or arm. (In the case of aarch64, it is always
32 bit.)
---
Will push after a day or two.
---
 gas-preprocessor.pl | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/gas-preprocessor.pl b/gas-preprocessor.pl
index 85ccf24..ec1a6ec 100755
--- a/gas-preprocessor.pl
+++ b/gas-preprocessor.pl
@@ -1194,6 +1194,13 @@ sub handle_serialized_line {
     if ($as_type eq "armasm") {
         $line =~ s/\.global/EXPORT/x;
         $line =~ s/\.extern/IMPORT/x;
+        if ($thumb) {
+            # Translate .inst into a 16 bit thumb instruction word
+            $line =~ s/\.inst/dcw/x;
+        } else {
+            # Translate .inst into a full 32 bit word
+            $line =~ s/\.inst/dcd/x;
+        }
         $line =~ s/\.int/dcd/x;
         $line =~ s/\.long/dcd/x;
         $line =~ s/\.float/dcfs/x;
-- 
2.43.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to