Remove dead instructsion %set/qb and %set/qf / Kill some warnings.

This commit is contained in:
Stephen Williams 2014-11-19 09:15:01 -08:00
parent 725ed869ba
commit 2acc9fbdee
3 changed files with 5 additions and 152 deletions

View File

@ -186,8 +186,6 @@ extern bool of_RELEASE_REG(vthread_t thr, vvp_code_t code);
extern bool of_RELEASE_WR(vthread_t thr, vvp_code_t code);
extern bool of_REPLICATE(vthread_t thr, vvp_code_t code);
extern bool of_SCOPY(vthread_t thr, vvp_code_t code);
extern bool of_SET_QB(vthread_t thr, vvp_code_t code);
extern bool of_SET_QF(vthread_t thr, vvp_code_t code);
extern bool of_SET_DAR_OBJ_REAL(vthread_t thr, vvp_code_t code);
extern bool of_SET_DAR_OBJ_STR(vthread_t thr, vvp_code_t code);
extern bool of_SET_DAR_OBJ_VEC4(vthread_t thr, vvp_code_t code);

View File

@ -237,8 +237,6 @@ static const struct opcode_table_s opcode_table[] = {
{ "%set/dar/obj/real",of_SET_DAR_OBJ_REAL,1,{OA_NUMBER,OA_NONE,OA_NONE} },
{ "%set/dar/obj/str", of_SET_DAR_OBJ_STR, 1,{OA_NUMBER,OA_NONE,OA_NONE} },
{ "%set/dar/obj/vec4",of_SET_DAR_OBJ_VEC4,1,{OA_NUMBER,OA_NONE,OA_NONE} },
{ "%set/qb", of_SET_QB, 3, {OA_FUNC_PTR, OA_BIT1, OA_BIT2} },
{ "%set/qf", of_SET_QF, 3, {OA_FUNC_PTR, OA_BIT1, OA_BIT2} },
{ "%shiftl", of_SHIFTL, 1, {OA_NUMBER, OA_NONE, OA_NONE} },
{ "%shiftr", of_SHIFTR, 1, {OA_NUMBER, OA_NONE, OA_NONE} },
{ "%shiftr/s", of_SHIFTR_S, 1, {OA_NUMBER, OA_NONE, OA_NONE} },
@ -531,48 +529,23 @@ bool vpi_handle_resolv_list_s::resolve(bool mes)
{
symbol_value_t val = sym_get_value(sym_vpi, label());
if (!val.ptr) {
// check for thread vector T<base,wid>
// check for thread access symbols
unsigned base, wid;
int n = 0;
size_t n = 0;
char ss[32];
if (2 == sscanf(label(), "W<%u,%[r]>%n", &base, ss, &n)
if (2 == sscanf(label(), "W<%u,%[r]>%zn", &base, ss, &n)
&& n == strlen(label())) {
val.ptr = vpip_make_vthr_word(base, ss);
sym_set_value(sym_vpi, label(), val);
#if 0
// The T<...> forms are obsolete.
} else if (2 <= sscanf(label(), "T<%u,%u>%n", &base, &wid, &n)
&& n == strlen(label())) {
val.ptr = vpip_make_vthr_vector(base, wid, false);
sym_set_value(sym_vpi, label(), val);
} else if (3 <= sscanf(label(), "T<%u,%u,%[su]>%n", &base,
&wid, ss, &n)
&& n == (int)strlen(label())) {
bool signed_flag = false;
for (char*fp = ss ; *fp ; fp += 1) switch (*fp) {
case 's':
signed_flag = true;
break;
case 'u':
signed_flag = false;
break;
default:
break;
}
val.ptr = vpip_make_vthr_vector(base, wid, signed_flag);
sym_set_value(sym_vpi, label(), val);
#endif
} else if (1 == sscanf(label(), "S<%u,str>%n", &base, &n)
} else if (1 == sscanf(label(), "S<%u,str>%zn", &base, &n)
&& n == strlen(label())) {
val.ptr = vpip_make_vthr_str_stack(base);
sym_set_value(sym_vpi, label(), val);
} else if (3 == sscanf(label(), "S<%u,vec4,%[su]%u>%n", &base, ss, &wid, &n)
} else if (3 == sscanf(label(), "S<%u,vec4,%[su]%u>%zn", &base, ss, &wid, &n)
&& n == strlen(label())) {
bool signed_flag = false;

View File

@ -308,11 +308,6 @@ struct __vpiScope* vthread_scope(struct vthread_s*thr)
struct vthread_s*running_thread = 0;
#if 0
// this table maps the thread special index bit addresses to
// vvp_bit4_t bit values.
static vvp_bit4_t thr_index_to_bit4[4] = { BIT4_0, BIT4_1, BIT4_X, BIT4_Z };
#endif
void vthread_push_vec4(struct vthread_s*thr, const vvp_vector4_t&val)
{
@ -394,55 +389,6 @@ template <class T> T coerce_to_width(const T&that, unsigned width)
/* Explicitly define the vvp_vector4_t version of coerce_to_width(). */
template vvp_vector4_t coerce_to_width(const vvp_vector4_t&that,
unsigned width);
#if 0
static unsigned long* vector_to_array(struct vthread_s*thr,
unsigned addr, unsigned wid)
{
if (addr == 0) {
unsigned awid = (wid + CPU_WORD_BITS - 1) / (CPU_WORD_BITS);
unsigned long*val = new unsigned long[awid];
for (unsigned idx = 0 ; idx < awid ; idx += 1)
val[idx] = 0;
return val;
}
if (addr == 1) {
unsigned awid = (wid + CPU_WORD_BITS - 1) / (CPU_WORD_BITS);
unsigned long*val = new unsigned long[awid];
for (unsigned idx = 0 ; idx < awid ; idx += 1)
val[idx] = -1UL;
wid -= (awid-1) * CPU_WORD_BITS;
if (wid < CPU_WORD_BITS)
val[awid-1] &= (-1UL) >> (CPU_WORD_BITS-wid);
return val;
}
if (addr < 4)
return 0;
return thr->bits4.subarray(addr, wid);
}
#endif
#if 0
/*
* This function gets from the thread a vector of bits starting from
* the addressed location and for the specified width.
*/
static vvp_vector4_t vthread_bits_to_vector(struct vthread_s*thr,
unsigned bit, unsigned wid)
{
/* Make a vector of the desired width. */
if (bit >= 4) {
return vvp_vector4_t(thr->bits4, bit, wid);
} else {
return vvp_vector4_t(wid, thr_index_to_bit4[bit]);
}
}
#endif
/*
* Some of the instructions do wide addition to arrays of long. They
@ -4762,70 +4708,6 @@ bool of_SET_DAR_OBJ_VEC4(vthread_t thr, vvp_code_t cp)
return true;
}
/*
* %set/qb <var-label> <bit>, <wid>
*/
bool of_SET_QB(vthread_t /*thr*/, vvp_code_t /*cp*/)
{
#if 0
unsigned bit = cp->bit_idx[0];
unsigned wid = cp->bit_idx[1];
/* Make a vector of the desired width. */
vvp_vector4_t value = vthread_bits_to_vector(thr, bit, wid);
vvp_net_t*net = cp->net;
vvp_fun_signal_object*obj = dynamic_cast<vvp_fun_signal_object*> (net->fun);
assert(obj);
vvp_queue*dqueue = obj->get_object().peek<vvp_queue>();
if (dqueue == 0) {
assert(obj->get_object().test_nil());
dqueue = new vvp_queue_vec4;
vvp_object_t val (dqueue);
vvp_net_ptr_t ptr (cp->net, 0);
vvp_send_object(ptr, val, thr->wt_context);
}
assert(dqueue);
dqueue->push_back(value);
#else
fprintf(stderr, "XXXX FORGOT TO IMPLEMENT %%set/qb\n");
#endif
return true;
}
/*
* %set/qf <var-label> <bit>, <wid>
*/
bool of_SET_QF(vthread_t /*thr*/, vvp_code_t /*cp*/)
{
#if 0
unsigned bit = cp->bit_idx[0];
unsigned wid = cp->bit_idx[1];
/* Make a vector of the desired width. */
vvp_vector4_t value = vthread_bits_to_vector(thr, bit, wid);
vvp_net_t*net = cp->net;
vvp_fun_signal_object*obj = dynamic_cast<vvp_fun_signal_object*> (net->fun);
assert(obj);
vvp_queue*dqueue = obj->get_object().peek<vvp_queue>();
if (dqueue == 0) {
assert(obj->get_object().test_nil());
dqueue = new vvp_queue_vec4;
vvp_object_t val (dqueue);
vvp_net_ptr_t ptr (cp->net, 0);
vvp_send_object(ptr, val, thr->wt_context);
}
assert(dqueue);
dqueue->push_front(value);
#else
fprintf(stderr, "XXXX FORGOT TO IMPLEMENT %%set/qf\n");
#endif
return true;
}
/*
* %set/dar/obj/str <index>
*/