Ejemplo n.º 1
0
 def execute(self, processor):
     if processor.condition_passed():
         doubled, sat1 = signed_sat_q(2 * processor.registers.get(self.n).int, 32)
         result, sat2 = signed_sat_q(processor.registers.get(self.m).int + doubled.int, 32)
         processor.registers.set(self.d, result)
         if sat1 or sat2:
             processor.registers.cpsr.set_q(True)
Ejemplo n.º 2
0
 def execute(self, processor):
     if processor.condition_passed():
         doubled, sat1 = signed_sat_q(2 * to_signed(processor.registers.get(self.n), 32), 32)
         result, sat2 = signed_sat_q(to_signed(processor.registers.get(self.m), 32) - to_signed(doubled, 32), 32)
         processor.registers.set(self.d, result)
         if sat1 or sat2:
             processor.registers.cpsr.q = 1
Ejemplo n.º 3
0
 def execute(self, processor):
     if processor.condition_passed():
         n = processor.registers.get(self.n)
         result1, sat1 = signed_sat_q(to_signed(substring(n, 15, 0), 16),
                                      self.saturate_to)
         result2, sat2 = signed_sat_q(to_signed(substring(n, 31, 16), 16),
                                      self.saturate_to)
         processor.registers.set(
             self.d,
             chain(to_unsigned(result2, 16), to_unsigned(result1, 16), 16))
         if sat1 or sat2:
             processor.registers.cpsr.q = 1
Ejemplo n.º 4
0
 def execute(self, processor):
     if processor.condition_passed():
         result, sat = signed_sat_q(
                 processor.registers.get(self.m).int + processor.registers.get(self.n).int, 32)
         processor.registers.set(self.d, result)
         if sat:
             processor.registers.cpsr.set_q(True)
Ejemplo n.º 5
0
 def execute(self, processor):
     if processor.condition_passed():
         result, sat = signed_sat_q(
             to_signed(processor.registers.get(self.m), 32) -
             to_signed(processor.registers.get(self.n), 32), 32)
         processor.registers.set(self.d, result)
         if sat:
             processor.registers.cpsr.q = 1
Ejemplo n.º 6
0
 def execute(self, processor):
     if processor.condition_passed():
         operand = shift(processor.registers.get(self.n), 32, self.shift_t,
                         self.shift_n, processor.registers.cpsr.c)
         result, sat = signed_sat_q(to_signed(operand, 32),
                                    self.saturate_to)
         processor.registers.set(self.d, to_unsigned(result, 32))
         if sat:
             processor.registers.cpsr.q = 1