diff options
author | danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-08-20 20:26:26 +0000 |
---|---|---|
committer | danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-08-20 20:26:26 +0000 |
commit | 59027a829aae0f399c964587a80130f3167aa078 (patch) | |
tree | 9f84797e3c6a84b09f4cb63db02114be51b19a3a /libjava | |
parent | 070549bbdcd5b8d1168fe668cfe9091cfc14ab37 (diff) | |
download | gcc-59027a829aae0f399c964587a80130f3167aa078.tar.gz |
PR libgcj/21692
* sysdep/pa/descriptor.h: New file.
* configure.host: Use sysdep/pa/descriptor.h on hppa*-*.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103306 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava')
-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)) |