mirror of
git://sourceware.org/git/glibc.git
synced 2025-02-17 13:00:43 +08:00
LoongArch: Fix soft-float bug about _dl_runtime_resolve{,lsx,lasx}
This commit is contained in:
parent
7f079fdc16
commit
0e1324e655
@ -270,7 +270,7 @@ elf_machine_runtime_setup (struct link_map *l, struct r_scope_elem *scope[],
|
||||
/* If using PLTs, fill in the first two entries of .got.plt. */
|
||||
if (l->l_info[DT_JMPREL])
|
||||
{
|
||||
#if HAVE_LOONGARCH_VEC_ASM
|
||||
#if HAVE_LOONGARCH_VEC_ASM && !defined __loongarch_soft_float
|
||||
extern void _dl_runtime_resolve_lasx (void) attribute_hidden;
|
||||
extern void _dl_runtime_resolve_lsx (void) attribute_hidden;
|
||||
#endif
|
||||
@ -300,7 +300,7 @@ elf_machine_runtime_setup (struct link_map *l, struct r_scope_elem *scope[],
|
||||
/* This function will get called to fix up the GOT entry
|
||||
indicated by the offset on the stack, and then jump to
|
||||
the resolved address. */
|
||||
#if HAVE_LOONGARCH_VEC_ASM
|
||||
#if HAVE_LOONGARCH_VEC_ASM && !defined __loongarch_soft_float
|
||||
if (SUPPORT_LASX)
|
||||
gotplt[0] = (ElfW(Addr)) &_dl_runtime_resolve_lasx;
|
||||
else if (SUPPORT_LSX)
|
||||
|
@ -19,7 +19,7 @@
|
||||
#include <sysdep.h>
|
||||
#include <sys/asm.h>
|
||||
|
||||
#if HAVE_LOONGARCH_VEC_ASM
|
||||
#if HAVE_LOONGARCH_VEC_ASM && !defined __loongarch_soft_float
|
||||
#define USE_LASX
|
||||
#define _dl_runtime_resolve _dl_runtime_resolve_lasx
|
||||
#include "dl-trampoline.h"
|
||||
|
@ -18,14 +18,12 @@
|
||||
|
||||
/* Assembler veneer called from the PLT header code for lazy loading.
|
||||
The PLT header passes its own args in t0-t2. */
|
||||
#ifndef __loongarch_soft_float
|
||||
# ifdef USE_LASX
|
||||
# define FRAME_SIZE (-((-9 * SZREG - 8 * SZFREG - 8 * SZXREG) & ALMASK))
|
||||
# elif defined USE_LSX
|
||||
# define FRAME_SIZE (-((-9 * SZREG - 8 * SZFREG - 8 * SZVREG) & ALMASK))
|
||||
# else
|
||||
# define FRAME_SIZE (-((-9 * SZREG - 8 * SZFREG) & ALMASK))
|
||||
# endif
|
||||
#ifdef USE_LASX
|
||||
# define FRAME_SIZE (-((-9 * SZREG - 8 * SZFREG - 8 * SZXREG) & ALMASK))
|
||||
#elif defined USE_LSX
|
||||
# define FRAME_SIZE (-((-9 * SZREG - 8 * SZFREG - 8 * SZVREG) & ALMASK))
|
||||
#elif !defined __loongarch_soft_float
|
||||
# define FRAME_SIZE (-((-9 * SZREG - 8 * SZFREG) & ALMASK))
|
||||
#else
|
||||
# define FRAME_SIZE (-((-9 * SZREG) & ALMASK))
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user