URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 207 |
Rev 345 |
/*
|
/*
|
* ====================================================
|
* ====================================================
|
* Copyright (C) 2007 by Ellips BV. All rights reserved.
|
* Copyright (C) 2007 by Ellips BV. All rights reserved.
|
*
|
*
|
* Permission to use, copy, modify, and distribute this
|
* Permission to use, copy, modify, and distribute this
|
* software is freely granted, provided that this notice
|
* software is freely granted, provided that this notice
|
* is preserved.
|
* is preserved.
|
* ====================================================
|
* ====================================================
|
*/
|
*/
|
|
|
/*
|
/*
|
** jmp_buf:
|
** jmp_buf:
|
** rbx rbp r12 r13 r14 r15 rsp rip
|
** rbx rbp r12 r13 r14 r15 rsp rip
|
** 0 8 16 24 32 40 48 56
|
** 0 8 16 24 32 40 48 56
|
*/
|
*/
|
|
|
#include "x86_64mach.h"
|
#include "x86_64mach.h"
|
|
|
.global SYM (setjmp)
|
.global SYM (setjmp)
|
.global SYM (longjmp)
|
.global SYM (longjmp)
|
SOTYPE_FUNCTION(setjmp)
|
SOTYPE_FUNCTION(setjmp)
|
SOTYPE_FUNCTION(longjmp)
|
SOTYPE_FUNCTION(longjmp)
|
|
|
SYM (setjmp):
|
SYM (setjmp):
|
movq rbx, 0 (rdi)
|
movq rbx, 0 (rdi)
|
movq rbp, 8 (rdi)
|
movq rbp, 8 (rdi)
|
movq r12, 16 (rdi)
|
movq r12, 16 (rdi)
|
movq r13, 24 (rdi)
|
movq r13, 24 (rdi)
|
movq r14, 32 (rdi)
|
movq r14, 32 (rdi)
|
movq r15, 40 (rdi)
|
movq r15, 40 (rdi)
|
leaq 8 (rsp), rax
|
leaq 8 (rsp), rax
|
movq rax, 48 (rdi)
|
movq rax, 48 (rdi)
|
movq (rsp), rax
|
movq (rsp), rax
|
movq rax, 56 (rdi)
|
movq rax, 56 (rdi)
|
movq $0, rax
|
movq $0, rax
|
ret
|
ret
|
|
|
SYM (longjmp):
|
SYM (longjmp):
|
movq rsi, rax /* Return value */
|
movq rsi, rax /* Return value */
|
|
|
movq 8 (rdi), rbp
|
movq 8 (rdi), rbp
|
|
|
__CLI
|
__CLI
|
movq 48 (rdi), rsp
|
movq 48 (rdi), rsp
|
pushq 56 (rdi)
|
pushq 56 (rdi)
|
movq 0 (rdi), rbx
|
movq 0 (rdi), rbx
|
movq 16 (rdi), r12
|
movq 16 (rdi), r12
|
movq 24 (rdi), r13
|
movq 24 (rdi), r13
|
movq 32 (rdi), r14
|
movq 32 (rdi), r14
|
movq 40 (rdi), r15
|
movq 40 (rdi), r15
|
__STI
|
__STI
|
|
|
ret
|
ret
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.