Message ID | 1528901663-4584-1-git-send-email-thuth@redhat.com |
---|---|
State | Accepted |
Headers | show |
Series | Fix bad assembler statements for compiling with gcc 8.1 / as 2.30 | expand |
On 13.06.2018 16:54, Thomas Huth wrote: > When compiling with a very recent toolchain, I get these warnings: > > ../../llfw/boot_abort.S: Assembler messages: > ../../llfw/boot_abort.S:76: Warning: invalid register expression > > and: > > stage2_head.S: Assembler messages: > stage2_head.S:57: Warning: invalid register expression > > The first one is using the wrong opcode, we should use "and" instead of > "andi" here. The second one is using a register instead of a constant > for load-immediate, which is non-sense, too. Fix it to use the right > constant instead. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > board-qemu/llfw/stage2_head.S | 2 +- > llfw/boot_abort.S | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/board-qemu/llfw/stage2_head.S b/board-qemu/llfw/stage2_head.S > index adf7554..1568f27 100644 > --- a/board-qemu/llfw/stage2_head.S > +++ b/board-qemu/llfw/stage2_head.S > @@ -54,7 +54,7 @@ bsscdone: > /* jump to c-code */ > /* r31 = fdt - r5 */ > /* ------------------------------------ */ > - li r3, r0 > + li r3, 0 > mr r4, r31 > bl .early_c_entry > > diff --git a/llfw/boot_abort.S b/llfw/boot_abort.S > index 996bdd7..47a9178 100644 > --- a/llfw/boot_abort.S > +++ b/llfw/boot_abort.S > @@ -73,7 +73,7 @@ ASM_ENTRY(boot_abort) > > /* check if i/o is possible, if yes then print message */ > li r10, ABORT_CANIO > - andi. r3, r31, r10 > + and. r3, r31, r10 > bne abort_noio > > /* use i/o ..., first print reference message */ > Ping?
On 13/06/2018 16:54, Thomas Huth wrote: > When compiling with a very recent toolchain, I get these warnings: > > ../../llfw/boot_abort.S: Assembler messages: > ../../llfw/boot_abort.S:76: Warning: invalid register expression > > and: > > stage2_head.S: Assembler messages: > stage2_head.S:57: Warning: invalid register expression > > The first one is using the wrong opcode, we should use "and" instead of > "andi" here. The second one is using a register instead of a constant > for load-immediate, which is non-sense, too. Fix it to use the right > constant instead. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > board-qemu/llfw/stage2_head.S | 2 +- > llfw/boot_abort.S | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/board-qemu/llfw/stage2_head.S b/board-qemu/llfw/stage2_head.S > index adf7554..1568f27 100644 > --- a/board-qemu/llfw/stage2_head.S > +++ b/board-qemu/llfw/stage2_head.S > @@ -54,7 +54,7 @@ bsscdone: > /* jump to c-code */ > /* r31 = fdt - r5 */ > /* ------------------------------------ */ > - li r3, r0 > + li r3, 0 > mr r4, r31 > bl .early_c_entry > > diff --git a/llfw/boot_abort.S b/llfw/boot_abort.S > index 996bdd7..47a9178 100644 > --- a/llfw/boot_abort.S > +++ b/llfw/boot_abort.S > @@ -73,7 +73,7 @@ ASM_ENTRY(boot_abort) > > /* check if i/o is possible, if yes then print message */ > li r10, ABORT_CANIO > - andi. r3, r31, r10 > + and. r3, r31, r10 > bne abort_noio > > /* use i/o ..., first print reference message */ > Reviewed-by: Laurent Vivier <lvivier@redhat.com>
On Wed, 27 Jun 2018 09:37:38 +0200 Thomas Huth <thuth@redhat.com> wrote: > On 13.06.2018 16:54, Thomas Huth wrote: > > When compiling with a very recent toolchain, I get these warnings: > > > > ../../llfw/boot_abort.S: Assembler messages: > > ../../llfw/boot_abort.S:76: Warning: invalid register expression > > > > and: > > > > stage2_head.S: Assembler messages: > > stage2_head.S:57: Warning: invalid register expression > > > > The first one is using the wrong opcode, we should use "and" instead of > > "andi" here. The second one is using a register instead of a constant > > for load-immediate, which is non-sense, too. Fix it to use the right > > constant instead. > > > > Signed-off-by: Thomas Huth <thuth@redhat.com> > > --- > > board-qemu/llfw/stage2_head.S | 2 +- > > llfw/boot_abort.S | 2 +- > > 2 files changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/board-qemu/llfw/stage2_head.S b/board-qemu/llfw/stage2_head.S > > index adf7554..1568f27 100644 > > --- a/board-qemu/llfw/stage2_head.S > > +++ b/board-qemu/llfw/stage2_head.S > > @@ -54,7 +54,7 @@ bsscdone: > > /* jump to c-code */ > > /* r31 = fdt - r5 */ > > /* ------------------------------------ */ > > - li r3, r0 > > + li r3, 0 > > mr r4, r31 > > bl .early_c_entry > > > > diff --git a/llfw/boot_abort.S b/llfw/boot_abort.S > > index 996bdd7..47a9178 100644 > > --- a/llfw/boot_abort.S > > +++ b/llfw/boot_abort.S > > @@ -73,7 +73,7 @@ ASM_ENTRY(boot_abort) > > > > /* check if i/o is possible, if yes then print message */ > > li r10, ABORT_CANIO > > - andi. r3, r31, r10 > > + and. r3, r31, r10 > > bne abort_noio > > > > /* use i/o ..., first print reference message */ > > > > Ping? Sorry, missed that. Thanks, applied. -- Alexey
diff --git a/board-qemu/llfw/stage2_head.S b/board-qemu/llfw/stage2_head.S index adf7554..1568f27 100644 --- a/board-qemu/llfw/stage2_head.S +++ b/board-qemu/llfw/stage2_head.S @@ -54,7 +54,7 @@ bsscdone: /* jump to c-code */ /* r31 = fdt - r5 */ /* ------------------------------------ */ - li r3, r0 + li r3, 0 mr r4, r31 bl .early_c_entry diff --git a/llfw/boot_abort.S b/llfw/boot_abort.S index 996bdd7..47a9178 100644 --- a/llfw/boot_abort.S +++ b/llfw/boot_abort.S @@ -73,7 +73,7 @@ ASM_ENTRY(boot_abort) /* check if i/o is possible, if yes then print message */ li r10, ABORT_CANIO - andi. r3, r31, r10 + and. r3, r31, r10 bne abort_noio /* use i/o ..., first print reference message */
When compiling with a very recent toolchain, I get these warnings: ../../llfw/boot_abort.S: Assembler messages: ../../llfw/boot_abort.S:76: Warning: invalid register expression and: stage2_head.S: Assembler messages: stage2_head.S:57: Warning: invalid register expression The first one is using the wrong opcode, we should use "and" instead of "andi" here. The second one is using a register instead of a constant for load-immediate, which is non-sense, too. Fix it to use the right constant instead. Signed-off-by: Thomas Huth <thuth@redhat.com> --- board-qemu/llfw/stage2_head.S | 2 +- llfw/boot_abort.S | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)