OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [newlib-1.18.0/] [newlib-1.18.0-or32-1.0rc1/] [newlib/] [libc/] [machine/] [x86_64/] [setjmp.S] - Diff between revs 207 and 345

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
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.