]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[prefix] Make unlzma.S compatible with 386 class CPUs 1588/head
authorJaromir Capik <jaromir.capik@email.cz>
Mon, 12 Jan 2026 01:40:28 +0000 (02:40 +0100)
committerMichael Brown <mcb30@ipxe.org>
Sun, 25 Jan 2026 16:15:32 +0000 (16:15 +0000)
Replace the bswap instruction with xchgb and roll and change the
module architecture from i486 to i386 to be consistent with the rest
of the project.

Modified-by: Michael Brown <mcb30@ipxe.org>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/arch/x86/prefix/unlzma.S

index e4d1e190d0350c76a2132c5172901e0630239896..6ab3222e2ad92f90a4423339e0e308215509b8da 100644 (file)
@@ -45,7 +45,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
 
        .section ".note.GNU-stack", "", @progbits
        .code32
-       .arch i486
+       .arch i386
        .section ".prefix.lib", "ax", @progbits
 
 #ifdef CODE16
@@ -962,7 +962,9 @@ decompress:
        ADDR32 lodsb    /* discard initial byte */
        print_hex_byte %al
        ADDR32 lodsl
-       bswapl  %eax
+       xchgb   %al, %ah
+       roll    $16, %eax
+       xchgb   %al, %ah
        print_hex_dword %eax
        print_character $('\n')
        movl    %eax, rc_code(%ebp)