mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-24 18:39:34 +03:00
powerpc64: Support ELFv2 asm on Big Endian
FreeBSD/powerpc64 is all ELFv2 since FreeBSD 13, even big endian. The existing sha256 and sha512 asm code assumes that BE is all ELFv1, and LE is ELFv2. Minor changes to add ELFv2 in the BE side gets this working correctly on FreeBSD with latest OpenZFS import. Reviewed-by: Tino Reichardt <milky-zfs@mcmilk.de> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Justin Hibbits <chmeeedalf@gmail.com> Closes #14779
This commit is contained in:
parent
2fd1c30423
commit
5a83f761c7
@ -49,7 +49,7 @@
|
||||
#include <machine/pcb.h>
|
||||
#include <machine/cpu.h>
|
||||
|
||||
#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)
|
||||
|
@ -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