Re: [PATCH 1/2] kbuild: consolidate redundant sed script ASM offset generation

From: David Howells
Date: Tue Apr 18 2017 - 05:58:02 EST


Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> wrote:

> This part ended up in redundant code after touched by multiple
> people.
>
> [1] Commit 3234282f33b2 ("x86, asm: Fix CFI macro invocations to
> deal with shortcomings in gas") added parentheses for defined
> expressions to support old gas for x86.
>
> [2] Commit a22dcdb0032c ("x86, asm: Fix ancient-GAS workaround")
> split the pattern into two to avoid parentheses for non-numeric
> expressions.
>
> [3] Commit 95a2f6f72d37 ("Partially revert patch that encloses
> asm-offset.h numbers in brackets") removed parentheses from numeric
> expressions as well because parentheses in MN10300 assembly have a
> special meaning (pointer access).
>
> Apparently, there is a conflict between [1] and [3]. After all,
> [3] took precedence, and a long time has passed since then.

There's a conflict between [1] and various assembly code formats. Some
formats define, say,

mov 4,r1

to move the number 4 into register r1, and:

mov (4),r1

to move the contents of the memory at address 4 into r1. Therefore, you
cannot simply wrap numeric operands in brackets. What might work is adding a
'+' on the front, e.g.:

mov +(4),r1

David