oaknut: Add LRCPC instructions

These are only the LRCPC instructions(`LDAPR*`) and not LRCPC2 or
LRCPC3.
This commit is contained in:
Wunkolo 2023-10-03 21:56:14 -07:00 committed by merry
parent 65285fd8d8
commit f7b0a1afa7
2 changed files with 24 additions and 1 deletions

View file

@ -1,2 +1,19 @@
// SPDX-FileCopyrightText: Copyright (c) 2023 merryhime <https://mary.rs>
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: MIT
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);
}

View file

@ -324,6 +324,12 @@ T(0xd40cec82, HVC(0x6764))
T(0xd5033cdf, ISB((BarrierOp)12))
T(0xd50339df, ISB((BarrierOp)9))
T(0xd5033fdf, ISB())
T(0xb8bfc020, LDAPR(W0, X1))
T(0xf8bfc000, LDAPR(X0, X0))
T(0xb8bfc012, LDAPR(W18, X0))
T(0xf8bfc00f, LDAPR(X15, X0))
T(0x38bfc000, LDAPRB(W0, X0))
T(0x78bfc220, LDAPRH(W0, X17))
T(0x88dffded, LDAR(W13, X15))
T(0x88dffe4a, LDAR(W10, X18))
T(0x88dffcfe, LDAR(W30, X7))