diff --git a/src/ia64/Lunw_get_fpreg.c b/src/ia64/Lunw_get_fpreg.c index e69de29b..ad8ca611 100644 --- a/src/ia64/Lunw_get_fpreg.c +++ b/src/ia64/Lunw_get_fpreg.c @@ -0,0 +1,4 @@ +#ifndef UNW_REMOTE_ONLY +#define UNW_LOCAL_ONLY +#include "unw_get_fpreg.c" +#endif diff --git a/src/ia64/Lunw_set_fpreg.c b/src/ia64/Lunw_set_fpreg.c index e69de29b..40ea40e8 100644 --- a/src/ia64/Lunw_set_fpreg.c +++ b/src/ia64/Lunw_set_fpreg.c @@ -0,0 +1,4 @@ +#ifndef UNW_REMOTE_ONLY +#define UNW_LOCAL_ONLY +#include "unw_set_fpreg.c" +#endif diff --git a/src/ia64/unw_get_fpreg.c b/src/ia64/unw_get_fpreg.c index e69de29b..b173e8d5 100644 --- a/src/ia64/unw_get_fpreg.c +++ b/src/ia64/unw_get_fpreg.c @@ -0,0 +1,32 @@ +/* libunwind - a platform-independent unwind library + Copyright (C) 2002 Hewlett-Packard Co + Contributed by David Mosberger-Tang + +This file is part of libunwind. + +libunwind is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +libunwind is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public +License. */ + +#include "unwind_i.h" + +int +unw_get_fpreg (unw_cursor_t *cursor, int regnum, unw_fpreg_t *valp) +{ + struct ia64_cursor *c = (struct ia64_cursor *) cursor; + + return ia64_access_fpreg (c, regnum, valp, 0); +} diff --git a/src/ia64/unw_get_save_loc.c b/src/ia64/unw_get_save_loc.c index e69de29b..ddd37956 100644 --- a/src/ia64/unw_get_save_loc.c +++ b/src/ia64/unw_get_save_loc.c @@ -0,0 +1,19 @@ +int +unw_get_save_loc (unw_cursor_t *cursor, int regnum, unw_save_loc_t *loc) +{ +#ifdef UNW_LOCAL_ONLY + unw_word_t addr; + + YYY; this is wrong: need to consider cursor save locs first; YYY + loc->type = UNW_SLT_NONE; + addr = uc_addr (c->uc, regnum); + if (addr) + { + loc->type = UNW_SLT_MEMORY; + loc->addr = addr; + } +#else + XXX; +#endif + return 0; +} diff --git a/src/ia64/unw_set_fpreg.c b/src/ia64/unw_set_fpreg.c index e69de29b..d36e76af 100644 --- a/src/ia64/unw_set_fpreg.c +++ b/src/ia64/unw_set_fpreg.c @@ -0,0 +1,32 @@ +/* libunwind - a platform-independent unwind library + Copyright (C) 2002 Hewlett-Packard Co + Contributed by David Mosberger-Tang + +This file is part of libunwind. + +libunwind is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +libunwind is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public +License. */ + +#include "unwind_i.h" + +int +unw_set_fpreg (unw_cursor_t *cursor, int regnum, unw_fpreg_t val) +{ + struct ia64_cursor *c = (struct ia64_cursor *) cursor; + + return ia64_access_fpreg (c, regnum, &val, 1); +}