Module: gas-preprocessor Branch: master Commit: 9d65cb9f00ac90999b0ee655be9f9dcb0f2954d6
Author: Martin Storsjo <[email protected]> Committer: Martin Storsjo <[email protected]> Date: Sat Jun 13 09:23:13 2015 +0300 Handle stmfd/ldmfd/ldm in the same way as stmdb/ldmia --- gas-preprocessor.pl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gas-preprocessor.pl b/gas-preprocessor.pl index 7ba31fe..9fb3069 100755 --- a/gas-preprocessor.pl +++ b/gas-preprocessor.pl @@ -946,9 +946,10 @@ sub handle_serialized_line { # from thumb to arm. s/mov\s*pc\s*,\s*lr/bx lr/g; - # Convert stmdb/ldmia with only one register into a plain str/ldr with post-increment/decrement - $line =~ s/stmdb\s+sp!\s*,\s*\{([^,-]+)\}/str $1, [sp, #-4]!/g; - $line =~ s/ldmia\s+sp!\s*,\s*\{([^,-]+)\}/ldr $1, [sp], #4/g; + # Convert stmdb/ldmia/stmfd/ldmfd/ldm with only one register into a plain str/ldr with post-increment/decrement. + # Wide thumb2 encoding requires at least two registers in register list while all other encodings support one register too. + $line =~ s/stm(?:db|fd)\s+sp!\s*,\s*\{([^,-]+)\}/str $1, [sp, #-4]!/g; + $line =~ s/ldm(?:ia|fd)?\s+sp!\s*,\s*\{([^,-]+)\}/ldr $1, [sp], #4/g; $line =~ s/\.arm/.thumb/x; } _______________________________________________ libav-commits mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-commits
