Skip to content

Commit

Permalink
3rdparty: Sync vixl to commit e6076e92c416422ea1fbde815e8e327f68658ac1
Browse files Browse the repository at this point in the history
  • Loading branch information
TheLastRar authored and F0bes committed Jan 18, 2025
1 parent 0600832 commit 31497c2
Show file tree
Hide file tree
Showing 38 changed files with 4,877 additions and 2,632 deletions.
4 changes: 2 additions & 2 deletions 3rdparty/vixl/include/vixl/aarch64/abi-aarch64.h
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,8 @@ template <>
inline GenericOperand ABI::GetReturnGenericOperand<void>() const {
return GenericOperand();
}
}
} // namespace vixl::aarch64
} // namespace aarch64
} // namespace vixl

#endif // VIXL_AARCH64_ABI_AARCH64_H_

Expand Down
141 changes: 141 additions & 0 deletions 3rdparty/vixl/include/vixl/aarch64/assembler-aarch64.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
#include "../globals-vixl.h"
#include "../invalset-vixl.h"
#include "../utils-vixl.h"

#include "operands-aarch64.h"

namespace vixl {
Expand Down Expand Up @@ -403,6 +404,15 @@ enum LoadStoreScalingOption {
// Assembler.
class Assembler : public vixl::internal::AssemblerBase {
public:
explicit Assembler(
PositionIndependentCodeOption pic = PositionIndependentCode)
: pic_(pic), cpu_features_(CPUFeatures::AArch64LegacyBaseline()) {}
explicit Assembler(
size_t capacity,
PositionIndependentCodeOption pic = PositionIndependentCode)
: AssemblerBase(capacity),
pic_(pic),
cpu_features_(CPUFeatures::AArch64LegacyBaseline()) {}
Assembler(byte* buffer,
size_t capacity,
PositionIndependentCodeOption pic = PositionIndependentCode)
Expand Down Expand Up @@ -2148,6 +2158,9 @@ class Assembler : public vixl::internal::AssemblerBase {
// System instruction with pre-encoded op (op1:crn:crm:op2).
void sys(int op, const Register& xt = xzr);

// System instruction with result.
void sysl(int op, const Register& xt = xzr);

// System data cache operation.
void dc(DataCacheOp op, const Register& rt);

Expand Down Expand Up @@ -3608,6 +3621,117 @@ class Assembler : public vixl::internal::AssemblerBase {
// Unsigned 8-bit integer matrix multiply-accumulate (vector).
void ummla(const VRegister& vd, const VRegister& vn, const VRegister& vm);

// Bit Clear and exclusive-OR.
void bcax(const VRegister& vd,
const VRegister& vn,
const VRegister& vm,
const VRegister& va);

// Three-way Exclusive-OR.
void eor3(const VRegister& vd,
const VRegister& vn,
const VRegister& vm,
const VRegister& va);

// Exclusive-OR and Rotate.
void xar(const VRegister& vd,
const VRegister& vn,
const VRegister& vm,
int rotate);

// Rotate and Exclusive-OR
void rax1(const VRegister& vd, const VRegister& vn, const VRegister& vm);

// SHA1 hash update (choose).
void sha1c(const VRegister& vd, const VRegister& vn, const VRegister& vm);

// SHA1 fixed rotate.
void sha1h(const VRegister& sd, const VRegister& sn);

// SHA1 hash update (majority).
void sha1m(const VRegister& vd, const VRegister& vn, const VRegister& vm);

// SHA1 hash update (parity).
void sha1p(const VRegister& vd, const VRegister& vn, const VRegister& vm);

// SHA1 schedule update 0.
void sha1su0(const VRegister& vd, const VRegister& vn, const VRegister& vm);

// SHA1 schedule update 1.
void sha1su1(const VRegister& vd, const VRegister& vn);

// SHA256 hash update (part 1).
void sha256h(const VRegister& vd, const VRegister& vn, const VRegister& vm);

// SHA256 hash update (part 2).
void sha256h2(const VRegister& vd, const VRegister& vn, const VRegister& vm);

// SHA256 schedule update 0.
void sha256su0(const VRegister& vd, const VRegister& vn);

// SHA256 schedule update 1.
void sha256su1(const VRegister& vd, const VRegister& vn, const VRegister& vm);

// SHA512 hash update part 1.
void sha512h(const VRegister& vd, const VRegister& vn, const VRegister& vm);

// SHA512 hash update part 2.
void sha512h2(const VRegister& vd, const VRegister& vn, const VRegister& vm);

// SHA512 schedule Update 0.
void sha512su0(const VRegister& vd, const VRegister& vn);

// SHA512 schedule Update 1.
void sha512su1(const VRegister& vd, const VRegister& vn, const VRegister& vm);

// AES single round decryption.
void aesd(const VRegister& vd, const VRegister& vn);

// AES single round encryption.
void aese(const VRegister& vd, const VRegister& vn);

// AES inverse mix columns.
void aesimc(const VRegister& vd, const VRegister& vn);

// AES mix columns.
void aesmc(const VRegister& vd, const VRegister& vn);

// SM3PARTW1.
void sm3partw1(const VRegister& vd, const VRegister& vn, const VRegister& vm);

// SM3PARTW2.
void sm3partw2(const VRegister& vd, const VRegister& vn, const VRegister& vm);

// SM3SS1.
void sm3ss1(const VRegister& vd,
const VRegister& vn,
const VRegister& vm,
const VRegister& va);

// SM3TT1A.
void sm3tt1a(const VRegister& vd,
const VRegister& vn,
const VRegister& vm,
int index);

// SM3TT1B.
void sm3tt1b(const VRegister& vd,
const VRegister& vn,
const VRegister& vm,
int index);

// SM3TT2A.
void sm3tt2a(const VRegister& vd,
const VRegister& vn,
const VRegister& vm,
int index);

// SM3TT2B.
void sm3tt2b(const VRegister& vd,
const VRegister& vn,
const VRegister& vm,
int index);

// Scalable Vector Extensions.

// Absolute value (predicated).
Expand Down Expand Up @@ -7062,6 +7186,21 @@ class Assembler : public vixl::internal::AssemblerBase {
// Unsigned Minimum.
void umin(const Register& rd, const Register& rn, const Operand& op);

// Check feature status.
void chkfeat(const Register& rd);

// Guarded Control Stack Push.
void gcspushm(const Register& rt);

// Guarded Control Stack Pop.
void gcspopm(const Register& rt);

// Guarded Control Stack Switch Stack 1.
void gcsss1(const Register& rt);

// Guarded Control Stack Switch Stack 2.
void gcsss2(const Register& rt);

// Emit generic instructions.

// Emit raw instructions into the instruction stream.
Expand Down Expand Up @@ -7530,6 +7669,8 @@ class Assembler : public vixl::internal::AssemblerBase {
static Instr VFormat(VRegister vd) {
if (vd.Is64Bits()) {
switch (vd.GetLanes()) {
case 1:
return NEON_1D;
case 2:
return NEON_2S;
case 4:
Expand Down
Loading

0 comments on commit 31497c2

Please sign in to comment.