That worked. Let me know what you'd like to do with
https://github.com/tianocore/edk2/pull/10760.
---
Before (original code)
...ModuleEntryPoint.iiii:58:12: error: immediate must be an integer in
range [0, 65535].
movz x9, (-1) >> 48, lsl #48 ; movk x9, ((-1) >> 32) & 0xffff, lsl #32 ;
movk x9, ((-1) >> 16) & 0xffff, lsl #16 ; movk x9, (-1) & 0xffff
---
After (new code)
svc #0
movz x9, ((-1) >> 48) & 0xffff, lsl #48 ; movk x9, ((-1) >> 32) &
0xffff, lsl #32 ; movk x9, ((-1) >> 16) & 0xffff, lsl #16 ; movk x9,
(-1) & 0xffff
cmp x0, x9
cset x0, ne
mov x9, xzr
ret
---
On 2/13/2025 5:33 PM, Leif Lindholm via groups.io wrote:
I would very much like to have a MOV64 that's universally usable.
That's sort of the point.
However, I'm wondering if the error is in fact triggered by the first
stanza (movz), which doesn't mask its result, and will have 48 sign
extended bits above the ones we care about for the instruction.
Annoyingly I cannot reproduce the build error in my setup, so I can't
verify if that is the problem.
Michael, could you possibly do a test and change
movz Reg, (Val) >> 48, lsl #48 ; \
to
movz Reg, ((Val) >> 48) & 0xffff, lsl #48 ; \
on line 51 in MdePkg/Include/AArch64/AsmMacroLib.h ?
And then rebuild the MOV64 version of ArmStandaloneMmCoreEntryPoint?
/
Leif
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#121120): https://edk2.groups.io/g/devel/message/121120
Mute This Topic: https://groups.io/mt/111172486/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-