<div dir="ltr"><div>Hi,</div><div><br></div><div>I'm trying to compile Mercury git HEAD as a cross-compiler for an ARM Linux target (GCC 5.3.1). To configure, I reuse the cross-compile script tools/configure_mingw_cross with the right host and gcc name. I get compile-time errors quite soon:</div><div><br></div><div>../scripts/mgnuc --grade asm_fast.gc     --c-debug --no-ansi   --        -c mercury_deep_copy.c -o mercury_deep_copy.o<br></div><div>In file included from mercury_deep_copy.c:59:0:</div><div>mercury_deep_copy_body.h: In function ‘MR_deep_copy’:</div><div>mercury_deep_copy_body.h:848:1: error: unable to find a register to spill</div><div>mercury_deep_copy_body.h:848:1: error: this is the insn:</div><div>(insn 446 451 2140 47 (set (reg:SI 958)</div><div>        (mem/f:SI (plus:SI (reg/f:SI 591 [ functor_desc_103->MR_du_functor_arg_types ])</div><div>                (reg:SI 296 [ D.10539 ])) [0 *_199+0 S4 A32])) mercury_deep_copy_body.h:345 615 {*thumb2_movsi_vfp}</div><div>     (expr_list:REG_DEAD (reg/f:SI 591 [ functor_desc_103->MR_du_functor_arg_types ])</div><div>        (expr_list:REG_DEAD (reg:SI 296 [ D.10539 ])</div><div>            (expr_list:REG_EQUIV (mem:SI (reg/f:SI 13 sp) [0  S4 A32])</div><div>                (nil)))))</div><div><br></div><div>An older post [1] suggests adding -O1 to CFLAGS. In fact yes, adding "CFLAGS += -O1" in Mmake.common solves this one.<br></div><div><br></div><div>[1] <a href="http://www.mercurylang.org/list-archives/users/2013-June/007597.html">http://www.mercurylang.org/list-archives/users/2013-June/007597.html</a></div><div><br></div><div>However another error follows:</div><div><br></div><div><div>mercury_layout_util.c: In function ‘MR_get_type_and_value’:</div><div>mercury_layout_util.c:946:1: error: unable to find a register to spill</div><div>mercury_layout_util.c:946:1: error: this is the insn:</div><div>(insn 13 34 36 2 (set (reg:SI 126)</div><div>        (mem/f/c:SI (plus:SI (reg/f:SI 103 afp)</div><div>                (const_int 40 [0x28])) [0 value+0 S4 A32])) mercury_layout_util.c:943 615 {*thumb2_movsi_vfp}</div><div>     (nil))</div></div><div><br></div><div>Is there a better solution then the -O1 workaround? Possibly I should disable asm_fast* grades?</div><div><br></div><div>--Vladimir</div><div><br></div><div><br></div></div>