【发布时间】:2015-05-04 20:59:59
【问题描述】:
我正在将 GCC 编译器移植到新的处理器架构。它类似于 v850 架构(“/gcc/config/v850”)并且几乎完成了。但是我在乘法运算中遇到了问题。体系结构仅支持无符号乘法。在签名的情况下,我必须使用 lib1funcs.asm 中的“__mulsi3”库函数。所以我需要在签名时调用库函数。实现“mulsi3”指令如下。有人知道如何从 {target}.md 文件或 {target}.c 文件调用任何库函数吗?帮帮我……
我遵循“sh”架构(“/gcc/config/sh”)并像 sh 架构一样实现。 GCC 构建正常。但是当我在目标上编译测试代码时,会出现一条错误消息。 (file => emit-rtl.c:862)
mulsi3 指令
(define_insn "mulsi3"
[(set (match_operand:SI 0 "register_operand" "=r,r")
(mult:SI (match_operand:SI 1 "nonmemory_operand" "r,r")
(match_operand:SI 2 "nonmemory_operand" "r,i")))]
""
"*
{
/* REG */
if(GET_CODE (operands[2]) == REG)
{
return \"mul %0,%1,%2\";
}
/* IMMEDIATE */
else
{
/* unsigned case */
if(CONST_OK_FOR_M(INTVAL(operands[2])))
{
return \"muli %0,%1,%2\";
}
/* signed case */
else
{
/******************************************/
/* need to call __mulsi3 library function */
/******************************************/
}
}
}
"
[(set_attr "length" "6,6")
(set_attr "cc" "none_0hit,none_0hit")
(set_attr "type" "mult")])
【问题讨论】:
-
问错地方了。你真的应该问
gcc@gcc.gnu.org
标签: c gcc compiler-construction porting cpu-architecture