diff options
author | Vineet Gupta <vgupta@synopsys.com> | 2019-05-15 15:36:46 -0700 |
---|---|---|
committer | Vineet Gupta <vgupta@synopsys.com> | 2019-07-01 11:02:22 -0700 |
commit | a4880801a72ecc2dcdfa432f81a754f3e7438567 (patch) | |
tree | 09598d292ca0afc987c785919f26354591d19761 /arch/arc/include/asm/linkage.h | |
parent | ab854bfcd310b5872fe12eb8d3f2c30fe427f8f7 (diff) | |
download | linux-stable-a4880801a72ecc2dcdfa432f81a754f3e7438567.tar.gz linux-stable-a4880801a72ecc2dcdfa432f81a754f3e7438567.tar.bz2 linux-stable-a4880801a72ecc2dcdfa432f81a754f3e7438567.zip |
ARCv2: entry: rewrite to enable use of double load/stores LDD/STD
- the motivation was to be remove blatent copy-paste due to hasty support
of CONFIG_ARC_IRQ_NO_AUTOSAVE support
- but with refactoring we could use LDD/STD to greatly optimize the code
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc/include/asm/linkage.h')
-rw-r--r-- | arch/arc/include/asm/linkage.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/arc/include/asm/linkage.h b/arch/arc/include/asm/linkage.h index 54f5ec5c1759..a0eeb9f8f0a9 100644 --- a/arch/arc/include/asm/linkage.h +++ b/arch/arc/include/asm/linkage.h @@ -10,6 +10,24 @@ #ifdef __ASSEMBLY__ +.macro ST2 e, o, off +#ifdef CONFIG_ARC_HAS_LL64 + std \e, [sp, \off] +#else + st \e, [sp, \off] + st \o, [sp, \off+4] +#endif +.endm + +.macro LD2 e, o, off +#ifdef CONFIG_ARC_HAS_LL64 + ldd \e, [sp, \off] +#else + ld \e, [sp, \off] + ld \o, [sp, \off+4] +#endif +.endm + #define ASM_NL ` /* use '`' to mark new line in macro */ /* annotation for data we want in DCCM - if enabled in .config */ |