Ejemplo n.º 1
0
void testAs() {
  boost::shared_ptr<int[]> sizes(new int[3]);
  sizes[0] = 2;
  sizes[1] = 1;
  sizes[2] = 2;

  boost::shared_ptr<int[]> array(new int[2]);
  array[0] = 1;
  array[1] = 1;

  SHEsis::ArrayStorage AS1(sizes);
  SHEsis::ArrayStorage AS2(sizes, array);
  AS2.getArray();
  AS2.getDimension();
  AS2.getSizes();
  AS2.set(1, 1);
}
#endif


    PROLOG()

    AS2(    movd  mm2, edx                      )

    #ifdef OLD_GCC_OFFSET
        AS2(    add   edx, 60                       )   // des1 = des1 key
    #else
        AS2(    add   edx, 56                       )   // des1 = des1 key
    #endif

    AS2(    mov   eax, DWORD PTR [esi]          )
    AS2(    mov   ebx, DWORD PTR [esi + 4]      )
    AS1(    bswap eax                           )    // left
    AS1(    bswap ebx                           )    // right

    AsmIPERM()

    DesRound() // 1
    DesRound() // 2
    DesRound() // 3
    DesRound() // 4
    DesRound() // 5
    DesRound() // 6
    DesRound() // 7
    DesRound() // 8

    // swap left and right 
    AS2(    xchg  eax, ebx                      )