/* SPDX-License-Identifier: GPL-2.0-only */ #if ENV_SEPARATE_DATA_AND_BSS /* * Copy .data section content to Cache-As-Ram. * This code can be included from 32 bits or 64 bits code. It also preserves * registers. */ copy_data_section: #if ENV_X86_64 push %rcx push %rdi push %rsi #else pushl %ecx pushl %edi pushl %esi #endif movl $(_edata), %ecx movl $(_data), %edi sub %edi, %ecx movl $(_data_load),%esi shrl $2, %ecx rep movsl #if ENV_X86_64 pop %rsi pop %rdi pop %rcx #else popl %esi popl %edi popl %ecx #endif #endif /* ENV_SEPARATE_DATA_AND_BSS */