Better handle some different function types in the .scope setup.
This commit is contained in:
parent
604a62379c
commit
fac7de2133
|
|
@ -2053,8 +2053,8 @@ extern "C" ivl_variable_type_t ivl_scope_func_type(ivl_scope_t net)
|
||||||
extern "C" int ivl_scope_func_signed(ivl_scope_t net)
|
extern "C" int ivl_scope_func_signed(ivl_scope_t net)
|
||||||
{
|
{
|
||||||
assert(net);
|
assert(net);
|
||||||
assert(net->type_ == IVL_SCT_FUNCTION);
|
assert(net->type_==IVL_SCT_FUNCTION);
|
||||||
assert(net->func_type == IVL_VT_LOGIC);
|
assert(net->func_type==IVL_VT_LOGIC || net->func_type==IVL_VT_BOOL);
|
||||||
return net->func_signed? !0 : 0;
|
return net->func_signed? !0 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2062,7 +2062,7 @@ extern "C" unsigned ivl_scope_func_width(ivl_scope_t net)
|
||||||
{
|
{
|
||||||
assert(net);
|
assert(net);
|
||||||
assert(net->type_ == IVL_SCT_FUNCTION);
|
assert(net->type_ == IVL_SCT_FUNCTION);
|
||||||
assert(net->func_type == IVL_VT_LOGIC);
|
assert(net->func_type==IVL_VT_LOGIC || net->func_type==IVL_VT_BOOL);
|
||||||
return net->func_width;
|
return net->func_width;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2254,6 +2254,7 @@ int draw_scope(ivl_scope_t net, ivl_scope_t parent)
|
||||||
if (ivl_scope_type(net)==IVL_SCT_FUNCTION) {
|
if (ivl_scope_type(net)==IVL_SCT_FUNCTION) {
|
||||||
switch (ivl_scope_func_type(net)) {
|
switch (ivl_scope_func_type(net)) {
|
||||||
case IVL_VT_LOGIC:
|
case IVL_VT_LOGIC:
|
||||||
|
case IVL_VT_BOOL:
|
||||||
snprintf(suffix, sizeof suffix, ".vec4.%c%u",
|
snprintf(suffix, sizeof suffix, ".vec4.%c%u",
|
||||||
ivl_scope_func_signed(net)? 'u' : 's',
|
ivl_scope_func_signed(net)? 'u' : 's',
|
||||||
ivl_scope_func_width(net));
|
ivl_scope_func_width(net));
|
||||||
|
|
@ -2265,8 +2266,12 @@ int draw_scope(ivl_scope_t net, ivl_scope_t parent)
|
||||||
snprintf(suffix, sizeof suffix, ".str");
|
snprintf(suffix, sizeof suffix, ".str");
|
||||||
break;
|
break;
|
||||||
case IVL_VT_CLASS:
|
case IVL_VT_CLASS:
|
||||||
|
case IVL_VT_DARRAY:
|
||||||
|
case IVL_VT_QUEUE:
|
||||||
snprintf(suffix, sizeof suffix, ".obj");
|
snprintf(suffix, sizeof suffix, ".obj");
|
||||||
break;
|
break;
|
||||||
|
case IVL_VT_VOID:
|
||||||
|
assert(0);
|
||||||
default:
|
default:
|
||||||
assert(0);
|
assert(0);
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue