zfs/powerpc64: Fix big-endian powerpc64 asm
The powerpc asm from openzfs assumes that big-endian is always ELFv1 and ELFv2 is always little-endian, while FreeBSD uses ELFv2 everywhere. Add the necessary bits to the checksum asm to work on big-endian ELFv2. This was also submitted upstream as PR#14779. Tested by: dbaio
This commit is contained in:
parent
33906122e1
commit
0468e89cb3
@ -551,7 +551,7 @@ zfs_sha512_available(void)
|
||||
|
||||
#elif defined(__powerpc__)
|
||||
|
||||
#define kfpu_allowed() 1
|
||||
#define kfpu_allowed() 0
|
||||
#define kfpu_initialize(tsk) do {} while (0)
|
||||
#define kfpu_begin() do {} while (0)
|
||||
#define kfpu_end() do {} while (0)
|
||||
|
@ -21,6 +21,7 @@
|
||||
|
||||
#if (defined(__PPC64__) && defined(__BIG_ENDIAN__))
|
||||
|
||||
#if (!defined(_CALL_ELF) || _CALL_ELF == 1)
|
||||
.text
|
||||
|
||||
.globl zfs_sha256_power8
|
||||
@ -33,6 +34,16 @@ zfs_sha256_power8:
|
||||
.previous
|
||||
.align 6
|
||||
.zfs_sha256_power8:
|
||||
#else
|
||||
.abiversion 2
|
||||
.text
|
||||
|
||||
.globl zfs_sha256_power8
|
||||
.type zfs_sha256_power8,@function
|
||||
.align 6
|
||||
zfs_sha256_power8:
|
||||
.localentry zfs_sha256_power8,0
|
||||
#endif
|
||||
stdu 1,-384(1)
|
||||
mflr 8
|
||||
li 10,207
|
||||
@ -677,8 +688,12 @@ zfs_sha256_power8:
|
||||
.long 0
|
||||
.byte 0,12,4,1,0x80,6,3,0
|
||||
.long 0
|
||||
#if (!defined(_CALL_ELF) || _CALL_ELF == 1)
|
||||
.size .zfs_sha256_power8,.-.zfs_sha256_power8
|
||||
.size zfs_sha256_power8,.-.zfs_sha256_power8
|
||||
#else
|
||||
.size zfs_sha256_power8,.-zfs_sha256_power8
|
||||
#endif
|
||||
.align 6
|
||||
.LPICmeup:
|
||||
mflr 0
|
||||
|
@ -21,6 +21,7 @@
|
||||
|
||||
#if (defined(__PPC64__) && defined(__BIG_ENDIAN__))
|
||||
|
||||
#if (!defined(_CALL_ELF) || _CALL_ELF == 1)
|
||||
.text
|
||||
|
||||
.globl zfs_sha256_ppc
|
||||
@ -33,6 +34,16 @@ zfs_sha256_ppc:
|
||||
.previous
|
||||
.align 6
|
||||
.zfs_sha256_ppc:
|
||||
#else
|
||||
.abiversion 2
|
||||
.text
|
||||
|
||||
.globl zfs_sha256_ppc
|
||||
.type zfs_sha256_ppc,@function
|
||||
.align 6
|
||||
zfs_sha256_ppc:
|
||||
.localentry zfs_sha256_ppc,0
|
||||
#endif
|
||||
stdu 1,-320(1)
|
||||
mflr 0
|
||||
sldi 5,5,6
|
||||
@ -1312,8 +1323,12 @@ zfs_sha256_ppc:
|
||||
blr
|
||||
.long 0
|
||||
.byte 0,12,0x14,0,0,0,0,0
|
||||
#if (!defined(_CALL_ELF) || _CALL_ELF == 1)
|
||||
.size .zfs_sha256_ppc,.-.zfs_sha256_ppc
|
||||
.size zfs_sha256_ppc,.-.zfs_sha256_ppc
|
||||
#else
|
||||
.size zfs_sha256_ppc,.-zfs_sha256_ppc
|
||||
#endif
|
||||
.align 6
|
||||
.LPICmeup:
|
||||
mflr 0
|
||||
|
@ -21,6 +21,7 @@
|
||||
|
||||
#if (defined(__PPC64__) && defined(__BIG_ENDIAN__))
|
||||
|
||||
#if (!defined(_CALL_ELF) || _CALL_ELF == 1)
|
||||
.text
|
||||
|
||||
.globl zfs_sha512_power8
|
||||
@ -33,6 +34,17 @@ zfs_sha512_power8:
|
||||
.previous
|
||||
.align 6
|
||||
.zfs_sha512_power8:
|
||||
#else
|
||||
.abiversion 2
|
||||
.text
|
||||
|
||||
.globl zfs_sha512_power8
|
||||
.type zfs_sha512_power8,@function
|
||||
.align 6
|
||||
zfs_sha512_power8:
|
||||
.localentry zfs_sha512_power8,0
|
||||
#endif
|
||||
|
||||
stdu 1,-384(1)
|
||||
mflr 8
|
||||
li 10,207
|
||||
@ -679,8 +691,12 @@ zfs_sha512_power8:
|
||||
.long 0
|
||||
.byte 0,12,4,1,0x80,6,3,0
|
||||
.long 0
|
||||
#if (!defined(_CALL_ELF) || _CALL_ELF == 1)
|
||||
.size .zfs_sha512_power8,.-.zfs_sha512_power8
|
||||
.size zfs_sha512_power8,.-.zfs_sha512_power8
|
||||
#else
|
||||
.size zfs_sha512_power8,.-zfs_sha512_power8
|
||||
#endif
|
||||
.align 6
|
||||
.LPICmeup:
|
||||
mflr 0
|
||||
|
@ -21,6 +21,7 @@
|
||||
|
||||
#if (defined(__PPC64__) && defined(__BIG_ENDIAN__))
|
||||
|
||||
#if (!defined(_CALL_ELF) || _CALL_ELF == 1)
|
||||
.text
|
||||
|
||||
.globl zfs_sha512_ppc
|
||||
@ -33,6 +34,16 @@ zfs_sha512_ppc:
|
||||
.previous
|
||||
.align 6
|
||||
.zfs_sha512_ppc:
|
||||
#else
|
||||
.abiversion 2
|
||||
.text
|
||||
|
||||
.globl zfs_sha512_ppc
|
||||
.type zfs_sha512_ppc,@function
|
||||
.align 6
|
||||
zfs_sha512_ppc:
|
||||
.localentry zfs_sha512_ppc,0
|
||||
#endif
|
||||
stdu 1,-384(1)
|
||||
mflr 0
|
||||
sldi 5,5,7
|
||||
@ -1350,8 +1361,12 @@ zfs_sha512_ppc:
|
||||
blr
|
||||
.long 0
|
||||
.byte 0,12,0x14,0,0,0,0,0
|
||||
#if (!defined(_CALL_ELF) || _CALL_ELF == 1)
|
||||
.size .zfs_sha512_ppc,.-.zfs_sha512_ppc
|
||||
.size zfs_sha512_ppc,.-.zfs_sha512_ppc
|
||||
#else
|
||||
.size zfs_sha512_ppc,.-zfs_sha512_ppc
|
||||
#endif
|
||||
.align 6
|
||||
.LPICmeup:
|
||||
mflr 0
|
||||
|
Loading…
Reference in New Issue
Block a user