Support R_SPARC_WDISP10 and R_SPARC_H34.
[external/binutils.git] / sim / common / sim-arange.c
index 43c5789..310fda5 100644 (file)
@@ -1,29 +1,37 @@
 /* Address ranges.
-   Copyright (C) 1998 Free Software Foundation, Inc.
+   Copyright (C) 1998, 2007-2012 Free Software Foundation, Inc.
    Contributed by Cygnus Solutions.
 
 This file is part of the GNU Simulators.
 
 This program 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.
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
 
 This program 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.
 
-You should have received a copy of the GNU General Public License along
-with this program; if not, write to the Free Software Foundation, Inc.,
-59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Tell sim-arange.h it's us.  */
 #define SIM_ARANGE_C
 
+#include "libiberty.h"
 #include "sim-basics.h"
 #include "sim-assert.h"
 
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
 #define DEFINE_INLINE_P (! defined (SIM_ARANGE_C_INCLUDED))
 #define DEFINE_NON_INLINE_P defined (SIM_ARANGE_C_INCLUDED)
 
@@ -185,9 +193,9 @@ frob_range (ADDR_RANGE *ar, address_word start, address_word end, int delete_p)
 
  out:
   if (new_asr)
-    free(new_asr);
+    free (new_asr);
   if (new_asr2)
-    free(new_asr2);
+    free (new_asr2);
 }
 
 /* Free T and all subtrees.  */
@@ -252,6 +260,9 @@ sim_addr_range_add (ADDR_RANGE *ar, address_word start, address_word end)
   frob_range (ar, start, end, 0);
 
   /* Rebuild the search tree.  */
+  /* ??? Instead of rebuilding it here it could be done in a module resume
+     handler, say by first checking for a `changed' flag, assuming of course
+     this would never be done while the simulation is running.  */
   free_search_tree (ar->range_tree);
   build_search_tree (ar);
 }
@@ -262,6 +273,9 @@ sim_addr_range_delete (ADDR_RANGE *ar, address_word start, address_word end)
   frob_range (ar, start, end, 1);
 
   /* Rebuild the search tree.  */
+  /* ??? Instead of rebuilding it here it could be done in a module resume
+     handler, say by first checking for a `changed' flag, assuming of course
+     this would never be done while the simulation is running.  */
   free_search_tree (ar->range_tree);
   build_search_tree (ar);
 }