This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Help with another constraint


Hi Revital1,
	 Thank you very much for your help. The ISA I am using
(OpenRISC) does not provide an alternative for moving a constant into
memory. The only way of doing this is to move the constant into a
register (which i am doing) and then move that register value into
memory. So what can I do in that case?

Thanks,

Baljai V. Iyer.


-- 
 
Balaji V. Iyer
PhD Student, 
Center for Efficient, Scalable and Reliable Computing,
Department of Electrical and Computer Engineering,
North Carolina State University.


-----Original Message-----
From: Revital1 Eres [mailto:ERES@il.ibm.com] 
Sent: Wednesday, December 12, 2007 7:14 AM
To: Balaji V. Iyer
Cc: gcc@gcc.gnu.org; openrisc@opencores.org; 'Rask Ingemann Lambertsen'
Subject: RE: Help with another constraint

Hello,

I think you should add the pair of constraints m and I respectively to
the description of the instruction in your md file (and a relevant case
8 to handle such instruction), i.e.:

 (define_insn "movqi"
-  [(set (match_operand:QI 0 "nonimmediate_operand" "=p,q,m,m,p,q,p,q")
-        (match_operand:QI 1 "general_operand"
"m,m,p,q,p,q,I,I"))]
+  [(set (match_operand:QI 0 "nonimmediate_operand"
"=p,q,m,m,p,q,p,q,m")
+        (match_operand:QI 1 "general_operand"
"m,m,p,q,p,q,I,I,I"))]
   ""
   "*
   switch(which_alternative)
@@ -17,6 +17,8 @@
      case 6:
      case 7:
        return \"l.addi  \\t%0,r0,%1\\t # move immediate\";,
+     case 8:
+       return ...;
      default:
        return \"invalid alternative\";
    }

It seems that the pair m and I is missing (which indicate the memory =
constant instruction).  You could look for which_alternative variable in
GCC internals for more details on this.

Revital




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]