Dear GCC Developers,

I have a rather simple piece of a "call_value" instruction pattern in my
machine description:

---snip---
(define_insn "call_value"
  [(set (match_operand 0 "" "")
        (call (match_operand:QI 1 "" "")
        (match_operand:SI 2 "" "")))]
  ""
  "jal\\t%S0%("
  [(set_attr "type" "jump")
   (set_attr "mode" "none")])
---snap---

However when I try to compile the following example I get a "Internal
Compiler" Error message.

---snip---
int odd(int i)
{
  return i & 0x1;
}

int foo(int i, int j)
{
  int a;
  a=odd(i+j);
  return a;
}
---snap---

If simply omit the "a=odd(i+j)"-line everything works fine so it has
something to do with this call.
What am I doing wrong? It seems so simple but I can't figure out what's
wrong with my pattern.

Regards,
Markus Franke

Reply via email to