diff options
author | tduehr <tduehr@gmail.com> | 2015-03-19 16:44:33 -0700 |
---|---|---|
committer | tduehr <tduehr@gmail.com> | 2015-06-17 09:01:47 -0500 |
commit | e9d07620ae8ac090863998d22ab7ca0db9cd1e89 (patch) | |
tree | ba0c75a8e11e88123926cb9817a3bb0a7c1b157b /ext/ffi_c/libffi/src/sparc/v8.S | |
parent | 194784d60f53e242a8aab88c216126785dc047dd (diff) | |
download | ffi-e9d07620ae8ac090863998d22ab7ca0db9cd1e89.tar.gz |
update libffilibffi-3.2.1
Diffstat (limited to 'ext/ffi_c/libffi/src/sparc/v8.S')
-rw-r--r-- | ext/ffi_c/libffi/src/sparc/v8.S | 39 |
1 files changed, 36 insertions, 3 deletions
diff --git a/ext/ffi_c/libffi/src/sparc/v8.S b/ext/ffi_c/libffi/src/sparc/v8.S index 2c4eb60..6bf7ac0 100644 --- a/ext/ffi_c/libffi/src/sparc/v8.S +++ b/ext/ffi_c/libffi/src/sparc/v8.S @@ -1,5 +1,6 @@ /* ----------------------------------------------------------------------- - v8.S - Copyright (c) 1996, 1997, 2003, 2004, 2008 Red Hat, Inc. + v8.S - Copyright (c) 2013 The Written Word, Inc. + Copyright (c) 1996, 1997, 2003, 2004, 2008 Red Hat, Inc. SPARC Foreign Function Interface @@ -31,11 +32,39 @@ #define STACKFRAME 96 /* Minimum stack framesize for SPARC */ #define ARGS (64+4) /* Offset of register area in frame */ -.text +#ifndef __GNUC__ + .text + .align 8 +.globl ffi_flush_icache +.globl _ffi_flush_icache + +ffi_flush_icache: +_ffi_flush_icache: + add %o0, %o1, %o2 +#ifdef SPARC64 +1: flush %o0 +#else +1: iflush %o0 +#endif + add %o0, 8, %o0 + cmp %o0, %o2 + blt 1b + nop + nop + nop + nop + nop + retl + nop +.ffi_flush_icache_end: + .size ffi_flush_icache,.ffi_flush_icache_end-ffi_flush_icache +#endif + + .text .align 8 .globl ffi_call_v8 .globl _ffi_call_v8 - + ffi_call_v8: _ffi_call_v8: .LLFB1: @@ -213,6 +242,10 @@ ffi_closure_v8: be,a done1 ldd [%fp-8], %i0 + cmp %o0, FFI_TYPE_UINT64 + be,a done1 + ldd [%fp-8], %i0 + ld [%fp-8], %i0 done1: jmp %i7+8 |