This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
emit_move_insn
- From: Hendrik Greving <hendrik dot greving dot intel at gmail dot com>
- To: "gcc-help at gcc dot gnu dot org" <gcc-help at gcc dot gnu dot org>
- Date: Tue, 27 Aug 2013 10:05:21 -0700
- Subject: emit_move_insn
- Authentication-results: sourceware.org; auth=none
In my backend (GCC 4.8.1), the compiler calls emit_move_insn from
expand_value_return. The C-code is
static char
cnv(const char *str) {
int i = strtol(str, ((void *)0), 10);
if (i == -1)
i = 127;
return (char)i;
}
x is SImode and y is QImode (makes sense from looking at the C-code).
Apparently the compiler doesn't call any sign or zero extend before
that. I am running into the assertion in emit_move_insn
gcc_assert (mode != BLKmode
&& (GET_MODE (y) == mode || GET_MODE (y) == VOIDmode));
because mode(x) != mode(y).
Any idea what could causing this?
Regards,
Thanks,
Hendrik Greving