mips.h (MASK_RETURN_ADDR): Define.
authorAlexandre Oliva <aoliva@redhat.com>
Fri, 22 Mar 2002 22:02:12 +0000 (22:02 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Fri, 22 Mar 2002 22:02:12 +0000 (22:02 +0000)
* config/mips/mips.h (MASK_RETURN_ADDR): Define.
(TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.

From-SVN: r51191

gcc/ChangeLog
gcc/config/mips/mips.h

index 09ea7641f6257f52036c87d40fa94f099e21b30c..6b1f0b57cccc84eadb438d22336801c2a5574e24 100644 (file)
@@ -1,3 +1,8 @@
+2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config/mips/mips.h (MASK_RETURN_ADDR): Define.
+       (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
+
 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
 
        * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
index 7b01130a3877054609a59fcec2cd955d5aada93b..62bb9483d883d7e935c20bcdaa2c81bcea9be59c 100644 (file)
@@ -2423,6 +2423,17 @@ extern enum reg_class mips_char_to_class[256];
                                         RETURN_ADDRESS_POINTER_REGNUM))) \
    : (rtx) 0)
 
+/* Since the mips16 ISA mode is encoded in the least-significant bit
+   of the address, mask it off return addresses for purposes of
+   finding exception handling regions.  */
+
+#define MASK_RETURN_ADDR GEN_INT (-2)
+
+/* Similarly, don't use the least-significant bit to tell pointers to
+   code from vtable index.  */
+
+#define TARGET_PTRMEMFUNC_VBIT_LOCATION ptrmemfunc_vbit_in_delta
+
 /* Structure to be filled in by compute_frame_size with register
    save masks, and offsets for the current function.  */