示例#1
0
    def block(self, d, a, value):
        code = self.get_active_code()
        temp = code.prgm.acquire_register((value, value, value, value))
        code.add(
            cal.ishl(d, a, temp)
        )  # documentation says temp is 'scalar' with all components the same
        code.prgm.release_register(temp)

        return
示例#2
0
def FF(a1, b1, c1, d1, x1, s1, ac1):
    global xcode
    l = xcode.acquire_register((ac1, ac1, ac1, ac1))
    temp1 = xcode.acquire_register()
    temp2 = xcode.acquire_register()

    F(b1, c1, d1, temp1)
    cal.iadd(a1, a1, temp1)
    cal.iadd(a1, a1, x1)
    cal.iadd(a1, a1, l)

    cal.ishl(temp1, a1, s1)
    cal.ushr(temp2, a1, s1(neg=('x', 'y', 'z', 'w')))
    cal.ior(a1, temp1, temp2)
    cal.iadd(a1, a1, b1)

    xcode.release_register(l)
    xcode.release_register(temp1)
    xcode.release_register(temp2)
示例#3
0
def FF(a1, b1, c1, d1, x1, s1, ac1):
  global xcode
  l = xcode.acquire_register((ac1, ac1, ac1, ac1))
  temp1 = xcode.acquire_register()
  temp2 = xcode.acquire_register()

  F(b1, c1, d1, temp1)
  cal.iadd(a1, a1, temp1)
  cal.iadd(a1, a1, x1)
  cal.iadd(a1, a1, l)
  
  cal.ishl(temp1, a1, s1)
  cal.ushr(temp2, a1, s1(neg=('x', 'y', 'z', 'w')))
  cal.ior(a1, temp1, temp2)
  cal.iadd(a1, a1, b1)

  xcode.release_register(l)
  xcode.release_register(temp1)
  xcode.release_register(temp2)