}
public BitVector getvalAsBitVector(long in) {
// FIXME
- long ret = getval(in);
return new BitVector(getWidth()).set(getval(in));
}
+ public BitVector getvalAsBitVector(BitVector in) {
+ // FIXME
+ return new BitVector(getWidth()).set(getval(in.toLong()));
+ }
public long getval(BitVector targ) {
long in = 0;
for(int i=0; i<targ.length(); i++)
ret &= ~(1L << i);
return ret;
}
+ public void setval(BitVector targ, long val) {
+ for(int i=valmaskmin; i<=valmaskmax; i++)
+ targ.set(i, ((1L<<(i-valmaskmin)) & val)!=0);
+ }
public long setval(long in, long targ) {
if (((targ << valmaskmin) & ~valmask) != 0) throw new RuntimeException("setval() with argument bigger than mask field");
return (in & ~valmask) | ((targ << valmaskmin) & valmask);