mbox series

[v2,0/5] ARM: convert to unified syntax

Message ID cover.1549753425.git.stefan@agner.ch (mailing list archive)
Headers show
Series ARM: convert to unified syntax | expand

Message

Stefan Agner Feb. 9, 2019, 11:08 p.m. UTC
This patchset converts all assembly code to unified assembler
language (UAL) compatible assembly code. From what I can tell,
this mainly boils down to using conditional infixes instead of
postfixes.

Most of the conversion has been done using the following regular
expression:
  find ./arch/arm/ -name "*.[hSc]" -exec sed -i -r \
    "s/^((\s*[._a-zA-Z0-9]*[\:\(])?\s*)([a-z]{3})(eq|ne|cs|hs|cc|lo|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al)([a-z]{1,2})(\s)/\1\3\5\4\6/"
\
    {} \;

The expression resulted in some false positives and missed some
instances where infix conditionals have been used. With this
changes applied, I compiled several kernel configurations
successfully and without a warning.

The file arch/arm/probes/kprobes/test-arm.c is still using some
divided syntax assembler.

This does not allow to use LLVM's integrated assembler just yet,
there is still some assembler which the integrated assembler does
not like (yet). But it is a big step towards that direction.

--
Stefan

Stefan Agner (5):
  ARM: use unified assembler in macros
  ARM: use unified assembler in headers
  ARM: use unified assembler in assembly files
  ARM: use unified assembler in c files
  ARM: warn if divided syntax assembler is used

 arch/arm/Makefile                             |  7 +---
 arch/arm/boot/bootp/init.S                    |  2 +-
 arch/arm/boot/compressed/ll_char_wr.S         |  4 +-
 arch/arm/include/asm/assembler.h              | 12 +++---
 .../include/asm/hardware/entry-macro-iomd.S   | 10 ++---
 arch/arm/include/asm/vfpmacros.h              |  8 ++--
 arch/arm/include/debug/tegra.S                |  2 +-
 arch/arm/kernel/debug.S                       |  2 +-
 arch/arm/kernel/entry-armv.S                  | 12 +++---
 arch/arm/kernel/entry-common.S                |  2 +-
 arch/arm/kernel/entry-header.S                |  8 ++--
 arch/arm/lib/bitops.h                         |  8 ++--
 arch/arm/lib/clear_user.S                     |  2 +-
 arch/arm/lib/copy_from_user.S                 |  2 +-
 arch/arm/lib/copy_page.S                      |  4 +-
 arch/arm/lib/copy_template.S                  |  4 +-
 arch/arm/lib/copy_to_user.S                   |  2 +-
 arch/arm/lib/csumpartial.S                    | 20 ++++-----
 arch/arm/lib/csumpartialcopygeneric.S         |  4 +-
 arch/arm/lib/csumpartialcopyuser.S            |  2 +-
 arch/arm/lib/div64.S                          |  4 +-
 arch/arm/lib/floppydma.S                      | 10 ++---
 arch/arm/lib/io-readsb.S                      | 20 ++++-----
 arch/arm/lib/io-readsl.S                      |  2 +-
 arch/arm/lib/io-readsw-armv3.S                |  6 +--
 arch/arm/lib/io-readsw-armv4.S                | 12 +++---
 arch/arm/lib/io-writesb.S                     | 20 ++++-----
 arch/arm/lib/io-writesl.S                     |  2 +-
 arch/arm/lib/io-writesw-armv3.S               |  2 +-
 arch/arm/lib/io-writesw-armv4.S               |  6 +--
 arch/arm/lib/lib1funcs.S                      |  4 +-
 arch/arm/lib/memcpy.S                         |  4 +-
 arch/arm/lib/memmove.S                        | 24 +++++------
 arch/arm/lib/memset.S                         | 42 +++++++++----------
 .../mach-ks8695/include/mach/entry-macro.S    |  2 +-
 arch/arm/mach-tegra/reset-handler.S           |  2 +-
 arch/arm/mm/cache-v6.S                        |  8 ++--
 arch/arm/mm/copypage-v4mc.c                   |  3 +-
 arch/arm/mm/copypage-v4wb.c                   |  3 +-
 arch/arm/mm/copypage-v4wt.c                   |  3 +-
 arch/arm/mm/proc-v7m.S                        |  4 +-
 41 files changed, 150 insertions(+), 150 deletions(-)

Comments

Nicolas Pitre Feb. 10, 2019, 9:24 p.m. UTC | #1
On Sun, 10 Feb 2019, Stefan Agner wrote:

> This patchset converts all assembly code to unified assembler
> language (UAL) compatible assembly code. From what I can tell,
> this mainly boils down to using conditional infixes instead of
> postfixes.
> 
> Most of the conversion has been done using the following regular
> expression:
>   find ./arch/arm/ -name "*.[hSc]" -exec sed -i -r \
>     "s/^((\s*[._a-zA-Z0-9]*[\:\(])?\s*)([a-z]{3})(eq|ne|cs|hs|cc|lo|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al)([a-z]{1,2})(\s)/\1\3\5\4\6/"
> \
>     {} \;
> 
> The expression resulted in some false positives and missed some
> instances where infix conditionals have been used. With this
> changes applied, I compiled several kernel configurations
> successfully and without a warning.
> 
> The file arch/arm/probes/kprobes/test-arm.c is still using some
> divided syntax assembler.
> 
> This does not allow to use LLVM's integrated assembler just yet,
> there is still some assembler which the integrated assembler does
> not like (yet). But it is a big step towards that direction.

OK....

Please document why you added .syntax unified in the commit log of each 
patch where this is added along with a link to the gcc PR.  Then you may 
add Acked-by: Nicolas Pitre <nico@linaro.org> to the whole series.


Nicolas
Stefan Agner Feb. 12, 2019, 7:31 p.m. UTC | #2
On 10.02.2019 22:24, Nicolas Pitre wrote:
> On Sun, 10 Feb 2019, Stefan Agner wrote:
> 
>> This patchset converts all assembly code to unified assembler
>> language (UAL) compatible assembly code. From what I can tell,
>> this mainly boils down to using conditional infixes instead of
>> postfixes.
>>
>> Most of the conversion has been done using the following regular
>> expression:
>>   find ./arch/arm/ -name "*.[hSc]" -exec sed -i -r \
>>     "s/^((\s*[._a-zA-Z0-9]*[\:\(])?\s*)([a-z]{3})(eq|ne|cs|hs|cc|lo|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al)([a-z]{1,2})(\s)/\1\3\5\4\6/"
>> \
>>     {} \;
>>
>> The expression resulted in some false positives and missed some
>> instances where infix conditionals have been used. With this
>> changes applied, I compiled several kernel configurations
>> successfully and without a warning.
>>
>> The file arch/arm/probes/kprobes/test-arm.c is still using some
>> divided syntax assembler.
>>
>> This does not allow to use LLVM's integrated assembler just yet,
>> there is still some assembler which the integrated assembler does
>> not like (yet). But it is a big step towards that direction.
> 
> OK....
> 
> Please document why you added .syntax unified in the commit log of each 
> patch where this is added along with a link to the gcc PR.  Then you may 
> add Acked-by: Nicolas Pitre <nico@linaro.org> to the whole series.

Agreed, that is a good idea. Will send v3. Thanks for the Acks.

--
Stefan