Implementation notes: aarch64, pi4b, crypto_stream/amastrid

Computer: pi4b
Architecture: aarch64
CPU ID: 410fd083
SUPERCOP version: 20221019
Operation: crypto_stream
Primitive: amastrid

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
Amastrid.cpp: In file included from Amastrid.cpp:3:
Amastrid.cpp: Amastrid.h: In member function 'void Amastrid::Bytes2Words(unsigned int*, unsigned int*, const int&)':
Amastrid.cpp: Amastrid.h:241:26: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Amastrid.cpp: 241 | for(register int i=0; i<len; i++)
Amastrid.cpp: | ^
Amastrid.cpp: Amastrid.h: In member function 'void Amastrid::Words2Bytes(unsigned int*, unsigned char*, const int&)':
Amastrid.cpp: Amastrid.h:250:26: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Amastrid.cpp: 250 | for(register int i=0; i<len; i++,pbytes+=4)
Amastrid.cpp: | ^
Amastrid.cpp: In file included from Amastrid.cpp:4:
Amastrid.cpp: Expansion.h: In member function 'void Expansion::SwapLE(const unsigned int&, const unsigned int&)':
Amastrid.cpp: Expansion.h:55:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Amastrid.cpp: 55 | register BYTE *p1, *p2;
Amastrid.cpp: | ^~
Amastrid.cpp: Expansion.h:55:29: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Amastrid.cpp: 55 | register BYTE *p1, *p2;
Amastrid.cpp: | ^~
Amastrid.cpp: Expansion.h:56:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Amastrid.cpp: 56 | register BYTE temp, v1, v2;
Amastrid.cpp: | ^~~~
Amastrid.cpp: Expansion.h:56:29: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Amastrid.cpp: 56 | register BYTE temp, v1, v2;
Amastrid.cpp: | ^~
Amastrid.cpp: Expansion.h:56:33: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Amastrid.cpp: 56 | register BYTE temp, v1, v2;
Amastrid.cpp: ...
Counter.cpp: Counter.cpp: In member function 'void Counter::operator++()':
Counter.cpp: Counter.cpp:9:18: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Counter.cpp: 9 | register int i = 0;
Counter.cpp: | ^
CounterMode.cpp: In file included from CounterMode.h:6,
CounterMode.cpp: from CounterMode.cpp:2:
CounterMode.cpp: Amastrid.h: In member function 'void Amastrid::Bytes2Words(unsigned int*, unsigned int*, const int&)':
CounterMode.cpp: Amastrid.h:241:26: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
CounterMode.cpp: 241 | for(register int i=0; i<len; i++)
CounterMode.cpp: | ^
CounterMode.cpp: Amastrid.h: In member function 'void Amastrid::Words2Bytes(unsigned int*, unsigned char*, const int&)':
CounterMode.cpp: Amastrid.h:250:26: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
CounterMode.cpp: 250 | for(register int i=0; i<len; i++,pbytes+=4)
CounterMode.cpp: | ^
CounterMode.cpp: In file included from CounterMode.cpp:2:
CounterMode.cpp: CounterMode.h: In member function 'void CounterMode::GetWords(unsigned int*, int)':
CounterMode.cpp: CounterMode.h:38:27: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
CounterMode.cpp: 38 | for (register int i = 0; i < n; i++)
CounterMode.cpp: | ^
CounterMode.cpp: CounterMode.h: In member function 'void CounterMode::GetBytes(unsigned char*, int)':
CounterMode.cpp: CounterMode.h:46:27: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
CounterMode.cpp: 46 | for (register int i = 0; i < n; i++)
CounterMode.cpp: | ^
Expansion.cpp: In file included from Expansion.cpp:3:
Expansion.cpp: Expansion.h: In member function 'void Expansion::SwapLE(const unsigned int&, const unsigned int&)':
Expansion.cpp: Expansion.h:55:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Expansion.cpp: 55 | register BYTE *p1, *p2;
Expansion.cpp: | ^~
Expansion.cpp: Expansion.h:55:29: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Expansion.cpp: 55 | register BYTE *p1, *p2;
Expansion.cpp: | ^~
Expansion.cpp: Expansion.h:56:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Expansion.cpp: 56 | register BYTE temp, v1, v2;
Expansion.cpp: | ^~~~
Expansion.cpp: Expansion.h:56:29: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Expansion.cpp: 56 | register BYTE temp, v1, v2;
Expansion.cpp: | ^~
Expansion.cpp: Expansion.h:56:33: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Expansion.cpp: 56 | register BYTE temp, v1, v2;
Expansion.cpp: | ^~
Expansion.cpp: Expansion.h: In member function 'void Expansion::SwapBE(const unsigned int&, const unsigned int&)':
Expansion.cpp: Expansion.h:75:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Expansion.cpp: 75 | register BYTE *p1, *p2;
Expansion.cpp: | ^~
Expansion.cpp: Expansion.h:75:29: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Expansion.cpp: 75 | register BYTE *p1, *p2;
Expansion.cpp: | ^~
Expansion.cpp: Expansion.h:76:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Expansion.cpp: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
Amastrid.cpp: In file included from Amastrid.cpp:3:
Amastrid.cpp: Amastrid.h: In member function 'void Amastrid::Bytes2Words(unsigned int*, unsigned int*, const int&)':
Amastrid.cpp: Amastrid.h:241:26: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Amastrid.cpp: 241 | for(register int i=0; i<len; i++)
Amastrid.cpp: | ^
Amastrid.cpp: Amastrid.h: In member function 'void Amastrid::Words2Bytes(unsigned int*, unsigned char*, const int&)':
Amastrid.cpp: Amastrid.h:250:26: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Amastrid.cpp: 250 | for(register int i=0; i<len; i++,pbytes+=4)
Amastrid.cpp: | ^
Amastrid.cpp: In file included from Amastrid.cpp:4:
Amastrid.cpp: Expansion.h: In member function 'void Expansion::SwapLE(const unsigned int&, const unsigned int&)':
Amastrid.cpp: Expansion.h:55:24: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Amastrid.cpp: 55 | register BYTE *p1, *p2;
Amastrid.cpp: | ^~
Amastrid.cpp: Expansion.h:55:29: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Amastrid.cpp: 55 | register BYTE *p1, *p2;
Amastrid.cpp: | ^~
Amastrid.cpp: Expansion.h:56:23: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Amastrid.cpp: 56 | register BYTE temp, v1, v2;
Amastrid.cpp: | ^~~~
Amastrid.cpp: Expansion.h:56:29: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Amastrid.cpp: 56 | register BYTE temp, v1, v2;
Amastrid.cpp: | ^~
Amastrid.cpp: Expansion.h:56:33: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
Amastrid.cpp: 56 | register BYTE temp, v1, v2;
Amastrid.cpp: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref