Attention is currently required from: Arthur Heymans, Julius Werner, Kapil Porwal.
Subrata Banik has posted comments on this change by Subrata Banik. ( https://review.coreboot.org/c/coreboot/+/81968?usp=email )
Change subject: libpayload: Add x86_64 (64-bit) support ......................................................................
Patch Set 68:
(1 comment)
File payloads/libpayload/arch/x86/pt.S:
https://review.coreboot.org/c/coreboot/+/81968/comment/0ce77e7c_5057cbbd?usp... : PS64, Line 82: incl %ebx
These may be the other reason... looks like in 32-bit mode, there's a shorter version of the `INC` instruction for registers available that can't be used in 64-bit mode (e.g. `inc %eax` assembles to `40` in 32-bit but to `ff c0` in 64-bit). It seems that in general, when using instructions that only work on 32-bit registers, almost everything that works in 64-bit mode also works in 32-bit mode but not the other way around. So maybe if you just declare this whole function as `.code64`, you'll get code that works for both modes.
i have tried that, not working. we might need to keep two different APIs for 32-bit and 64-bit separately.