[PATCH 2/4] mips: sync asm/asm.h with Linux 5.7
Stefan Roese
sr at denx.de
Thu Jul 16 08:21:14 CEST 2020
On 12.07.20 01:46, Daniel Schwierzeck wrote:
> Sync asm/asm.h with Linux 5.7.
>
> Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck at gmail.com>
Reviewed-by: Stefan Roese <sr at denx.de>
Tested-by: Stefan Roese <sr at denx.de>
Thanks,
Stefan
> ---
>
> arch/mips/include/asm/asm.h | 130 +++---------------------------------
> 1 file changed, 10 insertions(+), 120 deletions(-)
>
> diff --git a/arch/mips/include/asm/asm.h b/arch/mips/include/asm/asm.h
> index 7abcf6df07..a6876e1b07 100644
> --- a/arch/mips/include/asm/asm.h
> +++ b/arch/mips/include/asm/asm.h
> @@ -16,37 +16,12 @@
>
> #include <asm/sgidefs.h>
>
> -#ifndef CAT
> -#ifdef __STDC__
> -#define __CAT(str1, str2) str1##str2
> -#else
> -#define __CAT(str1, str2) str1/**/str2
> -#endif
> -#define CAT(str1, str2) __CAT(str1, str2)
> -#endif
> -
> -/*
> - * PIC specific declarations
> - * Not used for the kernel but here seems to be the right place.
> - */
> -#ifdef __PIC__
> -#define CPRESTORE(register) \
> - .cprestore register
> -#define CPADD(register) \
> - .cpadd register
> -#define CPLOAD(register) \
> - .cpload register
> -#else
> -#define CPRESTORE(register)
> -#define CPADD(register)
> -#define CPLOAD(register)
> -#endif
> -
> #define ENTRY(symbol) \
> .globl symbol; \
> .type symbol, @function; \
> .ent symbol, 0; \
> -symbol:
> +symbol: .cfi_startproc; \
> + .insn
>
> /*
> * LEAF - declare leaf routine
> @@ -57,7 +32,9 @@ symbol:
> .type symbol, @function; \
> .ent symbol, 0; \
> .section .text.symbol, "x"; \
> -symbol: .frame sp, 0, ra
> +symbol: .frame sp, 0, ra; \
> + .cfi_startproc; \
> + .insn
>
> /*
> * NESTED - declare nested routine entry point
> @@ -68,12 +45,15 @@ symbol: .frame sp, 0, ra
> .type symbol, @function; \
> .ent symbol, 0; \
> .section .text.symbol, "x"; \
> -symbol: .frame sp, framesize, rpc
> +symbol: .frame sp, framesize, rpc; \
> + .cfi_startproc; \
> + .insn
>
> /*
> * END - mark end of function
> */
> #define END(function) \
> + .cfi_endproc; \
> .end function; \
> .size function, .-function
>
> @@ -90,7 +70,7 @@ symbol:
> #define FEXPORT(symbol) \
> .globl symbol; \
> .type symbol, @function; \
> -symbol:
> +symbol: .insn
>
> /*
> * ABS - export absolute symbol
> @@ -128,96 +108,6 @@ symbol = value
> 8: .asciiz msg; \
> .popsection;
>
> -/*
> - * Build text tables
> - */
> -#define TTABLE(string) \
> - .pushsection .text; \
> - .word 1f; \
> - .popsection \
> - .pushsection .data; \
> -1: .asciiz string; \
> - .popsection
> -
> -/*
> - * MIPS IV pref instruction.
> - * Use with .set noreorder only!
> - *
> - * MIPS IV implementations are free to treat this as a nop. The R5000
> - * is one of them. So we should have an option not to use this instruction.
> - */
> -#ifdef CONFIG_CPU_HAS_PREFETCH
> -
> -#define PREF(hint, addr) \
> - .set push; \
> - .set arch=r5000; \
> - pref hint, addr; \
> - .set pop
> -
> -#define PREFE(hint, addr) \
> - .set push; \
> - .set mips0; \
> - .set eva; \
> - prefe hint, addr; \
> - .set pop
> -
> -#define PREFX(hint, addr) \
> - .set push; \
> - .set arch=r5000; \
> - prefx hint, addr; \
> - .set pop
> -
> -#else /* !CONFIG_CPU_HAS_PREFETCH */
> -
> -#define PREF(hint, addr)
> -#define PREFE(hint, addr)
> -#define PREFX(hint, addr)
> -
> -#endif /* !CONFIG_CPU_HAS_PREFETCH */
> -
> -/*
> - * MIPS ISA IV/V movn/movz instructions and equivalents for older CPUs.
> - */
> -#if (_MIPS_ISA == _MIPS_ISA_MIPS1)
> -#define MOVN(rd, rs, rt) \
> - .set push; \
> - .set reorder; \
> - beqz rt, 9f; \
> - move rd, rs; \
> - .set pop; \
> -9:
> -#define MOVZ(rd, rs, rt) \
> - .set push; \
> - .set reorder; \
> - bnez rt, 9f; \
> - move rd, rs; \
> - .set pop; \
> -9:
> -#endif /* _MIPS_ISA == _MIPS_ISA_MIPS1 */
> -#if (_MIPS_ISA == _MIPS_ISA_MIPS2) || (_MIPS_ISA == _MIPS_ISA_MIPS3)
> -#define MOVN(rd, rs, rt) \
> - .set push; \
> - .set noreorder; \
> - bnezl rt, 9f; \
> - move rd, rs; \
> - .set pop; \
> -9:
> -#define MOVZ(rd, rs, rt) \
> - .set push; \
> - .set noreorder; \
> - beqzl rt, 9f; \
> - move rd, rs; \
> - .set pop; \
> -9:
> -#endif /* (_MIPS_ISA == _MIPS_ISA_MIPS2) || (_MIPS_ISA == _MIPS_ISA_MIPS3) */
> -#if (_MIPS_ISA == _MIPS_ISA_MIPS4 ) || (_MIPS_ISA == _MIPS_ISA_MIPS5) || \
> - (_MIPS_ISA == _MIPS_ISA_MIPS32) || (_MIPS_ISA == _MIPS_ISA_MIPS64)
> -#define MOVN(rd, rs, rt) \
> - movn rd, rs, rt
> -#define MOVZ(rd, rs, rt) \
> - movz rd, rs, rt
> -#endif /* MIPS IV, MIPS V, MIPS32 or MIPS64 */
> -
> /*
> * Stack alignment
> */
>
Viele Grüße,
Stefan
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de
More information about the U-Boot
mailing list