|
|
|
@ -10,16 +10,19 @@ class Register: |
|
|
|
self.value = 0 |
|
|
|
Register.registers.append(self) |
|
|
|
|
|
|
|
def truncate(self, value, bits=None): |
|
|
|
def truncate_val(self, value, bits=None): |
|
|
|
if bits is None: |
|
|
|
bits = self.n_bits |
|
|
|
return value & (1 << bits - 1) |
|
|
|
return value & ((1 << bits) - 1) |
|
|
|
|
|
|
|
def trucate(self): |
|
|
|
self.value = self.truncate_val(self.value) |
|
|
|
|
|
|
|
def set(self, value): |
|
|
|
if value < 0: |
|
|
|
self.value = self.truncate(abs(value), self.n_bits - 1) |
|
|
|
self.value = self.truncate_val(abs(value), self.n_bits - 1) |
|
|
|
self.negate() |
|
|
|
self.value = self.truncate(value) |
|
|
|
self.trucate() |
|
|
|
|
|
|
|
def get(self): |
|
|
|
return self.value |
|
|
|
|