[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen staging] xen/arm32: head: Fix build when using GAS 2.25.0



commit 58197b685a4f61969c5903e7f079ba0ebf4fa59e
Author:     Julien Grall <julien.grall@xxxxxxx>
AuthorDate: Mon Sep 30 19:44:25 2019 +0100
Commit:     Stefano Stabellini <sstabellini@xxxxxxxxxx>
CommitDate: Mon Sep 30 17:55:11 2019 -0700

    xen/arm32: head: Fix build when using GAS 2.25.0
    
    GAS 2.25.0 throws multiple errors when building arm32/head.S:
    
    arm32/head.S: Assembler messages:
    arm32/head.S:452: Error: invalid constant (f7f) after fixup
    arm32/head.S:453: Error: invalid constant (f7f) after fixup
    arm32/head.S:495: Error: invalid constant (f7f) after fixup
    arm32/head.S:510: Error: invalid constant (f7f) after fixup
    arm32/head.S:514: Error: invalid constant (f7f) after fixup
    arm32/head.S:516: Error: invalid constant (f7f) after fixup
    arm32/head.S:633: Error: invalid constant (f7f) after fixup
    
    This makes sense because the instruction mov is only able to deal with a
    specific set of immediate (see "modified immediate constants in ARM
    instructions"). For any 16-bit immediate, the instruction movw should be
    used.
    
    It looks like newer version of GAS will seemly switch to movw if the
    immediate does not fit in the immediate encoding for mov. But we should
    not rely on this. So switch to movw.
    
    Fixes: 23dfe48d10 ("xen/arm32: head: Introduce macros to create table and 
mapping entry")
    Reported-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
    Signed-off-by: Julien Grall <julien.grall@xxxxxxx>
    Tested-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
    Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
---
 xen/arch/arm/arm32/head.S | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/arm32/head.S b/xen/arch/arm/arm32/head.S
index 2fc312f9e0..e9d356f05c 100644
--- a/xen/arch/arm/arm32/head.S
+++ b/xen/arch/arm/arm32/head.S
@@ -383,7 +383,7 @@ ENDPROC(cpu_init)
         ldr   r4, =\tbl
         add   r4, r4, r10            /* r4 := paddr(\tlb) */
 
-        mov   r2, #PT_PT             /* r2:r3 := right for linear PT */
+        movw  r2, #PT_PT             /* r2:r3 := right for linear PT */
         orr   r2, r2, r4             /*           + \tlb paddr */
         mov   r3, #0
 
@@ -419,7 +419,7 @@ ENDPROC(cpu_init)
         lsr   r4, \phys, #THIRD_SHIFT
         lsl   r4, r4, #THIRD_SHIFT   /* r4 := PAGE_ALIGNED(phys) */
 
-        mov   r2, #\type             /* r2:r3 := right for section PT */
+        movw  r2, #\type             /* r2:r3 := right for section PT */
         orr   r2, r2, r4             /*          + PAGE_ALIGNED(phys) */
         mov   r3, #0
 
--
generated by git-patchbot for /home/xen/git/xen.git#staging

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.