Hello Everyone,
    I got past that negdi2 and some errors..now I am trying to compile
some linux module, and it says I am not able to find this constraint:

init/main.c: In function 'start_kernel':
init/main.c:441: error: insn does not satisfy its constraints:
(insn 112 110 478 12 (set (mem:QI (reg/v/f:SI 16 r16 [orig:72 line.183 ]
[72]) [0 S1 A8])
        (const_int 0 [0x0])) 16 {movqi} (nil)
    (nil))
init/main.c:441: internal compiler error: in
reload_cse_simplify_operands, at postreload.c:391
Please submit a full bug report,

Here is what I have for movqi:

(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"))]
  ""
  "*
  switch(which_alternative)
   {
     case 0:
     case 1:
       return \"l.lbz   \\t%0,%1\";
     case 2:
     case 3:
       return \"l.sb    \\t%0,%1\";
     case 4:
     case 5:
       return \"l.ori   \\t%0,%1,0\\t # move reg to reg\";
     case 6:
     case 7:
       return \"l.addi  \\t%0,r0,%1\\t # move immediate\";
     default:
       return \"invalid alternative\";
   }
  "

To give a quick explanation: 
p = register numbers between 0-31 (inclusive)
q = register numbers between 32-63 (inclusive)

I = constant int value: ((VALUE) >=-32768 && (VALUE) <=32767)

So, what am I missing?

Any help is highly appreciated!
 

Thanking You,

Yours Sincerely,

Balaji 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: 'Rask Ingemann Lambertsen' [mailto:[EMAIL PROTECTED] 
Sent: Monday, December 10, 2007 12:16 PM
To: Balaji V. Iyer
Cc: gcc@gcc.gnu.org; [EMAIL PROTECTED]
Subject: Re: Help with another constraint

On Sun, Dec 09, 2007 at 11:35:32AM -0500, Balaji V. Iyer wrote:
> Hello Rask,
>       I am not understanding your response, can you clarify it for me?
> 
> As per the question  about the error message above?
> 
> ../../gcc-4.0.2/gcc/libgcc2.c -o libgcc/./_negdi2.o
> ../../gcc-4.0.2/gcc/libgcc2.c: In function '__negdi2':
> ../../gcc-4.0.2/gcc/libgcc2.c:72: error: insn does not satisfy its
> constraints:

   I think this is misleading you. It seems likely that the problem is
with the predicate and not the constraint.

> (insn 15 13 16 (set (mem:SI (plus:SI (reg/f:SI 2 r2)
                       ^^^

   This has to be a register, doesn't it? If so, use -fdump-rtl-all and
look at the dump files to see where it goes wrong.

>                 (const_int -28 [0xffffffe4])) [0 D.1256+0 S4 A32])
>         (neg:SI (reg:SI 3 r3 [orig:80 D.1255 ] [80]))) 38 {negsi2}
(nil)
>     (nil))

   Please also post your negsi2 pattern.

--
Rask Ingemann Lambertsen
Danish law requires addresses in e-mail to be logged and stored for a
year

Reply via email to