aboutsummaryrefslogtreecommitdiff
path: root/libffi
diff options
context:
space:
mode:
authorRainer Orth <ro@TechFak.Uni-Bielefeld.DE>2001-07-16 16:53:43 +0000
committerRainer Orth <ro@TechFak.Uni-Bielefeld.DE>2001-07-16 16:53:43 +0000
commitcb4941f40cc908a88d9597f5059691743578abe0 (patch)
tree4eeef7f3c093a84ef307975e57d5bd73760af34e /libffi
parent4185d267b8e8f217abbeadf1ac1f21288dc4fdc7 (diff)
* src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
Fixes PR bootstrap/3563. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@44045 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libffi')
-rw-r--r--libffi/ChangeLog5
-rw-r--r--libffi/src/alpha/ffi.c11
2 files changed, 13 insertions, 3 deletions
diff --git a/libffi/ChangeLog b/libffi/ChangeLog
index b8b915194cd..17dfbc2abf1 100644
--- a/libffi/ChangeLog
+++ b/libffi/ChangeLog
@@ -1,3 +1,8 @@
+2001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
+ Fixes PR bootstrap/3563.
+
2001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
diff --git a/libffi/src/alpha/ffi.c b/libffi/src/alpha/ffi.c
index a0becb3b378..2ed36732790 100644
--- a/libffi/src/alpha/ffi.c
+++ b/libffi/src/alpha/ffi.c
@@ -1,5 +1,5 @@
/* -----------------------------------------------------------------------
- ffi.c - Copyright (c) 1998 Cygnus Solutions
+ ffi.c - Copyright (c) 1998, 2001 Cygnus Solutions
Alpha Foreign Function Interface
@@ -166,8 +166,13 @@ ffi_prep_closure (ffi_closure* closure,
closure->fun = fun;
closure->user_data = user_data;
- /* Flush the Icache. */
- asm volatile ("imb" : : : "memory");
+ /* Flush the Icache.
+
+ Tru64 UNIX as doesn't understand the imb mnemonic, so use call_pal
+ instead, since both Compaq as and gas can handle it.
+
+ 0x86 is PAL_imb in Tru64 UNIX <alpha/pal.h>. */
+ asm volatile ("call_pal 0x86" : : : "memory");
return FFI_OK;
}