vec4 versions of %cassign/vec4/off and %force/vec4/off send flags[4].
This commit is contained in:
parent
f94a655121
commit
d2c2d6d8dc
|
|
@ -284,6 +284,10 @@ variable. This is similar to %set, but it uses the cassign port
|
||||||
signal responds differently. See "VARIABLE STATEMENTS" in the
|
signal responds differently. See "VARIABLE STATEMENTS" in the
|
||||||
README.txt file.
|
README.txt file.
|
||||||
|
|
||||||
|
The %cassign/vec4/off instruction will check the flags[4] flag, and if
|
||||||
|
it is 1, it will suppress the assignment. This is so that failed index
|
||||||
|
calculations can report the failure by setting the flag.
|
||||||
|
|
||||||
* %cassign/wr <var-label>
|
* %cassign/wr <var-label>
|
||||||
|
|
||||||
Perform a continuous assign of a constant real value to the target
|
Perform a continuous assign of a constant real value to the target
|
||||||
|
|
@ -582,6 +586,10 @@ part comes from the width of the popped value, and the <off> is an
|
||||||
index register that contains the cannonical offset where the value
|
index register that contains the cannonical offset where the value
|
||||||
sets written.
|
sets written.
|
||||||
|
|
||||||
|
The %foce/vec4/off instruction will test the value if flags[4], and if
|
||||||
|
it is 1, will suppress the actual assignment. This is intended to help
|
||||||
|
with detection of invalid index expressions.
|
||||||
|
|
||||||
* %force/wr <var-label>
|
* %force/wr <var-label>
|
||||||
|
|
||||||
Force a constant real value to the target variable. See %force/v
|
Force a constant real value to the target variable. See %force/v
|
||||||
|
|
|
||||||
|
|
@ -1719,6 +1719,9 @@ bool of_CASSIGN_VEC4_OFF(vthread_t thr, vvp_code_t cp)
|
||||||
vvp_vector4_t value = thr->pop_vec4();
|
vvp_vector4_t value = thr->pop_vec4();
|
||||||
unsigned wid = value.size();
|
unsigned wid = value.size();
|
||||||
|
|
||||||
|
if (thr->flags[4] == BIT4_1)
|
||||||
|
return true;
|
||||||
|
|
||||||
vvp_signal_value*sig = dynamic_cast<vvp_signal_value*> (net->fil);
|
vvp_signal_value*sig = dynamic_cast<vvp_signal_value*> (net->fil);
|
||||||
assert(sig);
|
assert(sig);
|
||||||
|
|
||||||
|
|
@ -3059,6 +3062,9 @@ bool of_FORCE_VEC4_OFF(vthread_t thr, vvp_code_t cp)
|
||||||
|
|
||||||
assert(net->fil);
|
assert(net->fil);
|
||||||
|
|
||||||
|
if (thr->flags[4] == BIT4_1)
|
||||||
|
return true;
|
||||||
|
|
||||||
// This is the width of the target vector.
|
// This is the width of the target vector.
|
||||||
unsigned use_size = net->fil->filter_size();
|
unsigned use_size = net->fil->filter_size();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue