mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS if X has VOIDmode either.
authorJeffrey A Law <law@cygnus.com>
Tue, 16 May 2000 18:18:32 +0000 (18:18 +0000)
committerJeff Law <law@gcc.gnu.org>
Tue, 16 May 2000 18:18:32 +0000 (12:18 -0600)
        * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
        if X has VOIDmode either.
        (LIMIT_RELOAD_CLASS): Similarly.

        * mn10200.md (indirect_jump, tablejump): Use "register_operand",
        not "general_operand" to match the processor's capabilities.

From-SVN: r33940

gcc/ChangeLog
gcc/config/mn10200/mn10200.h
gcc/config/mn10200/mn10200.md

index 4b7f8522a85090d9a9dc7195aa2d11b5ae9b79b1..19174206f086fb729d4ea16c43e63eea0a40fd0a 100644 (file)
@@ -1,3 +1,11 @@
+Tue May 16 12:17:31 2000  Jeffrey A Law  (law@cygnus.com)
+
+       * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
+       if X has VOIDmode either.
+       (LIMIT_RELOAD_CLASS): Similarly.
+
+       * mn10200.md (indirect_jump, tablejump): Use "register_operand",
+       not "general_operand" to match the processor's capabilities.
 
 2000-05-16  Bruce Korb  <bkorb@gnu.org>
 
index bc11832e65f5493195519968c16f2105f935ddbb..6df67ba0e991370a6eb177a4d5bfc14192638dbb 100644 (file)
@@ -298,11 +298,11 @@ enum reg_class {
    in some cases it is preferable to use a more restrictive class.  */
 
 #define PREFERRED_RELOAD_CLASS(X,CLASS) \
-  ((GET_MODE (X) != PSImode) ? DATA_REGS : CLASS)
+  ((GET_MODE (X) != PSImode && GET_MODE (X) != VOIDmode) ? DATA_REGS : CLASS)
 
 /* We want to use DATA_REGS for anything that is not PSImode.  */
 #define LIMIT_RELOAD_CLASS(MODE, CLASS) \
-  ((MODE != PSImode) ? DATA_REGS : CLASS)
+  ((MODE != PSImode && MODE != VOIDmode) ? DATA_REGS : CLASS)
 
 /* We have/need secondary reloads on the mn10200.  Mostly to deal
    with problems using address registers.  */
index e0b3e75f75611c244c88a6c7ba6a4235f49dd583..241219813847810a236a25d2ce8a5d39153cbb74 100644 (file)
  [(set_attr "cc" "none")])
 
 (define_insn "indirect_jump"
-  [(set (pc) (match_operand:PSI 0 "general_operand" "a"))]
+  [(set (pc) (match_operand:PSI 0 "register_operand" "a"))]
   ""
   "jmp (%0)"
   [(set_attr "cc" "none")])
 
 (define_insn "tablejump"
-  [(set (pc) (match_operand:PSI 0 "general_operand" "a"))
+  [(set (pc) (match_operand:PSI 0 "register_operand" "a"))
    (use (label_ref (match_operand 1 "" "")))]
   ""
   "jmp  (%0)"