diff options
author | RajithaY <rajithax.yerrumsetty@intel.com> | 2017-04-25 03:31:15 -0700 |
---|---|---|
committer | Rajitha Yerrumchetty <rajithax.yerrumsetty@intel.com> | 2017-05-22 06:48:08 +0000 |
commit | bb756eebdac6fd24e8919e2c43f7d2c8c4091f59 (patch) | |
tree | ca11e03542edf2d8f631efeca5e1626d211107e3 /qemu/roms/seabios/src/entryfuncs.S | |
parent | a14b48d18a9ed03ec191cf16b162206998a895ce (diff) |
Adding qemu as a submodule of KVMFORNFV
This Patch includes the changes to add qemu as a submodule to
kvmfornfv repo and make use of the updated latest qemu for the
execution of all testcase
Change-Id: I1280af507a857675c7f81d30c95255635667bdd7
Signed-off-by:RajithaY<rajithax.yerrumsetty@intel.com>
Diffstat (limited to 'qemu/roms/seabios/src/entryfuncs.S')
-rw-r--r-- | qemu/roms/seabios/src/entryfuncs.S | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/qemu/roms/seabios/src/entryfuncs.S b/qemu/roms/seabios/src/entryfuncs.S deleted file mode 100644 index 7368bb6d5..000000000 --- a/qemu/roms/seabios/src/entryfuncs.S +++ /dev/null @@ -1,165 +0,0 @@ -// Macros for entering C code -// -// Copyright (C) 2008-2014 Kevin O'Connor <kevin@koconnor.net> -// -// This file may be distributed under the terms of the GNU LGPLv3 license. - - -/**************************************************************** - * Macros for save and restore of 'struct bregs' registers - ****************************************************************/ - -#define PUSHBREGS_size 32 - - // Save registers (matches struct bregs) to stack - .macro PUSHBREGS - pushl %eax - pushl %ecx - pushl %edx - pushl %ebx - pushl %ebp - pushl %esi - pushl %edi - pushw %es - pushw %ds - .endm - - // Restore registers (from struct bregs) from stack - .macro POPBREGS - popw %ds - popw %es - popl %edi - popl %esi - popl %ebp - popl %ebx - popl %edx - popl %ecx - popl %eax - .endm - - // Save registers to struct bregs at %ds:%eax. The caller - // should "pushw %ds ; pushl %eax" prior to calling - this macro - // will pop them off. - .macro SAVEBREGS_POP_DSEAX - popl BREGS_eax(%eax) - popw BREGS_ds(%eax) - movl %edi, BREGS_edi(%eax) - movl %esi, BREGS_esi(%eax) - movl %ebp, BREGS_ebp(%eax) - movl %ebx, BREGS_ebx(%eax) - movl %edx, BREGS_edx(%eax) - movl %ecx, BREGS_ecx(%eax) - movw %es, BREGS_es(%eax) - .endm - - // Restore registers from struct bregs at %ds:%eax - .macro RESTOREBREGS_DSEAX - movl BREGS_edi(%eax), %edi - movl BREGS_esi(%eax), %esi - movl BREGS_ebp(%eax), %ebp - movl BREGS_ebx(%eax), %ebx - movl BREGS_edx(%eax), %edx - movl BREGS_ecx(%eax), %ecx - movw BREGS_es(%eax), %es - pushl BREGS_eax(%eax) - movw BREGS_ds(%eax), %ds - popl %eax - .endm - - -/**************************************************************** - * Entry macros - ****************************************************************/ - - // Call a C function - this does the minimal work necessary to - // call into C. It sets up %ds, backs up %es, and backs up - // those registers that are call clobbered by the C compiler. - .macro ENTRY cfunc - cli // In case something far-calls instead of using "int" - cld - pushl %eax // Save registers clobbered by C code - pushl %ecx - pushl %edx - pushw %es - pushw %ds - movw %ss, %ax // Move %ss to %ds - movw %ax, %ds - pushl %esp // Backup %esp, then clear high bits - movzwl %sp, %esp - calll \cfunc - popl %esp // Restore %esp (including high bits) - popw %ds // Restore registers saved above - popw %es - popl %edx - popl %ecx - popl %eax - .endm - - // Call a C function with current register list as an - // argument. This backs up the registers and sets %eax - // to point to the backup. On return, the registers are - // restored from the structure. - .macro ENTRY_ARG cfunc - cli - cld - PUSHBREGS - movw %ss, %ax // Move %ss to %ds - movw %ax, %ds - movl %esp, %ebx // Backup %esp, then zero high bits - movzwl %sp, %esp - movl %esp, %eax // First arg is pointer to struct bregs - calll \cfunc - movl %ebx, %esp // Restore %esp (including high bits) - POPBREGS - .endm - - // As above, but get calling function from stack. - .macro ENTRY_ARG_ST - cli - cld - pushl %ecx - pushl %edx - pushl %ebx - pushl %ebp - pushl %esi - pushl %edi - pushw %es - pushw %ds - movw %ss, %cx // Move %ss to %ds - movw %cx, %ds - movl %esp, %ebx // Backup %esp, then zero high bits - movzwl %sp, %esp - movl 28(%esp), %ecx // Get calling function - movl %eax, 28(%esp) // Save %eax - movl %esp, %eax // First arg is pointer to struct bregs - calll *%ecx - movl %ebx, %esp // Restore %esp (including high bits) - POPBREGS - .endm - - // Same as ENTRY_ARG, but don't mangle %esp - .macro ENTRY_ARG_ESP cfunc - cli - cld - PUSHBREGS - movw %ss, %ax // Move %ss to %ds - movw %ax, %ds - movl %esp, %eax // First arg is pointer to struct bregs - calll \cfunc - POPBREGS - .endm - - // Reset stack, transition to 32bit mode, and call a C function. - .macro ENTRY_INTO32 cfunc - xorw %dx, %dx - movw %dx, %ss - movl $ BUILD_STACK_ADDR , %esp - movl $ \cfunc , %edx - jmp transition32 - .endm - - // Declare a function - .macro DECLFUNC func - .section .text.asm.\func - .global \func - .endm |