eden/externals/oaknut/include/oaknut/impl/mnemonics_generic_v8.3.inc.hpp
swurl 6c655321e6
Move dead submodules in-tree
Signed-off-by: swurl <swurl@swurl.xyz>
2025-05-31 02:33:02 -04:00

159 lines
No EOL
4 KiB
C++

// SPDX-FileCopyrightText: Copyright (c) 2023 merryhime <https://mary.rs>
// SPDX-License-Identifier: MIT
void AUTDA(XReg xd, XRegSp xn)
{
emit<"110110101100000100Z110nnnnnddddd", "Z", "d", "n">(0, xd, xn);
}
void AUTDB(XReg xd, XRegSp xn)
{
emit<"110110101100000100Z111nnnnnddddd", "Z", "d", "n">(0, xd, xn);
}
void AUTDZA(XReg xd)
{
emit<"110110101100000100Z11011111ddddd", "Z", "d">(1, xd);
}
void AUTDZB(XReg xd)
{
emit<"110110101100000100Z11111111ddddd", "Z", "d">(1, xd);
}
void AUTIA(XReg xd, XRegSp xn)
{
emit<"110110101100000100Z100nnnnnddddd", "Z", "d", "n">(0, xd, xn);
}
void AUTIB(XReg xd, XRegSp xn)
{
emit<"110110101100000100Z101nnnnnddddd", "Z", "d", "n">(0, xd, xn);
}
void AUTIZA(XReg xd)
{
emit<"110110101100000100Z10011111ddddd", "Z", "d">(1, xd);
}
void AUTIZB(XReg xd)
{
emit<"110110101100000100Z10111111ddddd", "Z", "d">(1, xd);
}
void BLRAA(XReg xn, XRegSp xm)
{
emit<"1101011Z0011111100001Mnnnnnmmmmm", "Z", "M", "n", "m">(1, 0, xn, xm);
}
void BLRAAZ(XReg xn)
{
emit<"1101011Z0011111100001Mnnnnn11111", "Z", "M", "n">(0, 0, xn);
}
void BLRAB(XReg xn, XRegSp xm)
{
emit<"1101011Z0011111100001Mnnnnnmmmmm", "Z", "M", "n", "m">(1, 1, xn, xm);
}
void BLRABZ(XReg xn)
{
emit<"1101011Z0011111100001Mnnnnn11111", "Z", "M", "n">(0, 1, xn);
}
void BRAA(XReg xn, XRegSp xm)
{
emit<"1101011Z0001111100001Mnnnnnmmmmm", "Z", "M", "n", "m">(1, 0, xn, xm);
}
void BRAAZ(XReg xn)
{
emit<"1101011Z0001111100001Mnnnnn11111", "Z", "M", "n">(0, 0, xn);
}
void BRAB(XReg xn, XRegSp xm)
{
emit<"1101011Z0001111100001Mnnnnnmmmmm", "Z", "M", "n", "m">(1, 1, xn, xm);
}
void BRABZ(XReg xn)
{
emit<"1101011Z0001111100001Mnnnnn11111", "Z", "M", "n">(0, 1, xn);
}
void ERETAA()
{
emit<"110101101001111100001M1111111111", "M">(0);
}
void ERETAB()
{
emit<"110101101001111100001M1111111111", "M">(1);
}
void LDAPR(WReg wt, XRegSp xn)
{
emit<"1011100010111111110000nnnnnttttt", "t", "n">(wt, xn);
}
void LDAPR(XReg xt, XRegSp xn)
{
emit<"1111100010111111110000nnnnnttttt", "t", "n">(xt, xn);
}
void LDAPRB(WReg wt, XRegSp xn)
{
emit<"0011100010111111110000nnnnnttttt", "t", "n">(wt, xn);
}
void LDAPRH(WReg wt, XRegSp xn)
{
emit<"0111100010111111110000nnnnnttttt", "t", "n">(wt, xn);
}
void LDRAA(XReg xt, XRegSp xn, SOffset<13, 3> simm = 0)
{
emit<"11111000Mi1iiiiiiiiiW1nnnnnttttt", "M", "W", "t", "n", "i">(0, 0, xt, xn, simm);
}
void LDRAB(XReg xt, XRegSp xn, SOffset<13, 3> simm = 0)
{
emit<"11111000Mi1iiiiiiiiiW1nnnnnttttt", "M", "W", "t", "n", "i">(1, 0, xt, xn, simm);
}
void LDRAA(XReg xt, XRegSp xn, PreIndexed, SOffset<13, 3> simm)
{
emit<"11111000Mi1iiiiiiiiiW1nnnnnttttt", "M", "W", "t", "n", "i">(0, 1, xt, xn, simm);
}
void LDRAB(XReg xt, XRegSp xn, PreIndexed, SOffset<13, 3> simm)
{
emit<"11111000Mi1iiiiiiiiiW1nnnnnttttt", "M", "W", "t", "n", "i">(1, 1, xt, xn, simm);
}
void PACDA(XReg xd, XRegSp xn)
{
emit<"110110101100000100Z010nnnnnddddd", "Z", "d", "n">(0, xd, xn);
}
void PACDB(XReg xd, XRegSp xn)
{
emit<"110110101100000100Z011nnnnnddddd", "Z", "d", "n">(0, xd, xn);
}
void PACDZA(XReg xd)
{
emit<"110110101100000100Z01011111ddddd", "Z", "d">(1, xd);
}
void PACDZB(XReg xd)
{
emit<"110110101100000100Z01111111ddddd", "Z", "d">(1, xd);
}
void PACGA(XReg xd, XReg xn, XRegSp xm)
{
emit<"10011010110mmmmm001100nnnnnddddd", "d", "n", "m">(xd, xn, xm);
}
void PACIA(XReg xd, XRegSp xn)
{
emit<"110110101100000100Z000nnnnnddddd", "Z", "d", "n">(0, xd, xn);
}
void PACIB(XReg xd, XRegSp xn)
{
emit<"110110101100000100Z001nnnnnddddd", "Z", "d", "n">(0, xd, xn);
}
void PACIZA(XReg xd)
{
emit<"110110101100000100Z00011111ddddd", "Z", "d">(1, xd);
}
void PACIZB(XReg xd)
{
emit<"110110101100000100Z00111111ddddd", "Z", "d">(1, xd);
}
void RETAA()
{
emit<"110101100101111100001M1111111111", "M">(0);
}
void RETAB()
{
emit<"110101100101111100001M1111111111", "M">(1);
}
void XPACD(XReg xd)
{
emit<"110110101100000101000D11111nnnnn", "D", "n">(1, xd);
}
void XPACI(XReg xd)
{
emit<"110110101100000101000D11111nnnnn", "D", "n">(0, xd);
}