diff options
-rw-r--r-- | libjava/ChangeLog | 6 | ||||
-rw-r--r-- | libjava/configure.host | 6 | ||||
-rw-r--r-- | libjava/sysdep/pa/descriptor.h | 7 |
3 files changed, 18 insertions, 1 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 97b128474fc..e3c9a6d1959 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,9 @@ +2005-08-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + PR libgcj/21692 + * sysdep/pa/descriptor.h: New file. + * configure.host: Use sysdep/pa/descriptor.h on hppa*-*. + 2005-08-19 Andrew Pinski <pinskia@physics.uc.edu> * Makefile.am (extra_ldflags_libjava): New variable to diff --git a/libjava/configure.host b/libjava/configure.host index 7f57cb0841b..d84757f7928 100644 --- a/libjava/configure.host +++ b/libjava/configure.host @@ -278,10 +278,14 @@ case "${host}" in esac case "${host}" in - ia64-* | hppa*-*) + ia64-*) descriptor_h=sysdep/descriptor-y.h ;; + hppa*-*) + descriptor_h=sysdep/pa/descriptor.h + ;; + rs6000-* | powerpc*-*) descriptor_h=sysdep/powerpc/descriptor.h ;; diff --git a/libjava/sysdep/pa/descriptor.h b/libjava/sysdep/pa/descriptor.h new file mode 100644 index 00000000000..d9888516d9c --- /dev/null +++ b/libjava/sysdep/pa/descriptor.h @@ -0,0 +1,7 @@ +// Given a function pointer, return the code address. +// If the plabel bit is set, mask it off and return the code from the +// first word of the function descriptor. Otherwise, the function +// pointer is the code address. + +#define UNWRAP_FUNCTION_DESCRIPTOR(X) \ + (((unsigned int)(X)) & 2 ? *(void **)(((unsigned int)(X)) & ~3) : (X)) |