mirror of
https://git.suyu.dev/suyu/dynarmic.git
synced 2026-03-10 13:42:55 +00:00
A64: Implement addsub instructions
This commit is contained in:
@@ -35,10 +35,14 @@ A32OPC(GetFpscrNZCV, T::U32,
|
||||
A32OPC(SetFpscrNZCV, T::Void, T::U32, )
|
||||
|
||||
// A64 Context getters/setters
|
||||
A64OPC(GetCFlag, T::U1, )
|
||||
A64OPC(SetNZCV, T::Void, T::NZCVFlags )
|
||||
A64OPC(GetW, T::U32, T::A64Reg )
|
||||
A64OPC(GetX, T::U64, T::A64Reg )
|
||||
A64OPC(GetSP, T::U64, )
|
||||
A64OPC(SetW, T::Void, T::A64Reg, T::U32 )
|
||||
A64OPC(SetX, T::Void, T::A64Reg, T::U64 )
|
||||
A64OPC(SetSP, T::Void, T::U64 )
|
||||
|
||||
// Hints
|
||||
OPCODE(PushRSB, T::Void, T::U64 )
|
||||
@@ -47,6 +51,7 @@ OPCODE(PushRSB, T::Void, T::U64
|
||||
OPCODE(GetCarryFromOp, T::U1, T::U32 )
|
||||
OPCODE(GetOverflowFromOp, T::U1, T::U32 )
|
||||
OPCODE(GetGEFromOp, T::U32, T::U32 )
|
||||
OPCODE(GetNZCVFromOp, T::NZCVFlags, T::Opaque )
|
||||
|
||||
// Calculations
|
||||
OPCODE(Pack2x32To1x64, T::U64, T::U32, T::U32 )
|
||||
@@ -66,22 +71,26 @@ OPCODE(ArithmeticShiftRight64, T::U64, T::U64, T::U8
|
||||
OPCODE(RotateRight32, T::U32, T::U32, T::U8, T::U1 )
|
||||
OPCODE(RotateRight64, T::U64, T::U64, T::U8 )
|
||||
OPCODE(RotateRightExtended, T::U32, T::U32, T::U1 )
|
||||
OPCODE(AddWithCarry, T::U32, T::U32, T::U32, T::U1 )
|
||||
OPCODE(SubWithCarry, T::U32, T::U32, T::U32, T::U1 )
|
||||
OPCODE(Add64, T::U64, T::U64, T::U64 )
|
||||
OPCODE(Sub64, T::U64, T::U64, T::U64 )
|
||||
OPCODE(Mul, T::U32, T::U32, T::U32 )
|
||||
OPCODE(Add32, T::U32, T::U32, T::U32, T::U1 )
|
||||
OPCODE(Add64, T::U64, T::U64, T::U64, T::U1 )
|
||||
OPCODE(Sub32, T::U32, T::U32, T::U32, T::U1 )
|
||||
OPCODE(Sub64, T::U64, T::U64, T::U64, T::U1 )
|
||||
OPCODE(Mul32, T::U32, T::U32, T::U32 )
|
||||
OPCODE(Mul64, T::U64, T::U64, T::U64 )
|
||||
OPCODE(And, T::U32, T::U32, T::U32 )
|
||||
OPCODE(Eor, T::U32, T::U32, T::U32 )
|
||||
OPCODE(Or, T::U32, T::U32, T::U32 )
|
||||
OPCODE(Not, T::U32, T::U32 )
|
||||
OPCODE(SignExtendWordToLong, T::U64, T::U32 )
|
||||
OPCODE(SignExtendHalfToWord, T::U32, T::U16 )
|
||||
OPCODE(SignExtendByteToWord, T::U32, T::U8 )
|
||||
OPCODE(ZeroExtendWordToLong, T::U64, T::U32 )
|
||||
OPCODE(ZeroExtendHalfToWord, T::U32, T::U16 )
|
||||
OPCODE(SignExtendHalfToWord, T::U32, T::U16 )
|
||||
OPCODE(SignExtendByteToLong, T::U64, T::U8 )
|
||||
OPCODE(SignExtendHalfToLong, T::U64, T::U16 )
|
||||
OPCODE(SignExtendWordToLong, T::U64, T::U32 )
|
||||
OPCODE(ZeroExtendByteToWord, T::U32, T::U8 )
|
||||
OPCODE(ZeroExtendHalfToWord, T::U32, T::U16 )
|
||||
OPCODE(ZeroExtendByteToLong, T::U64, T::U8 )
|
||||
OPCODE(ZeroExtendHalfToLong, T::U64, T::U16 )
|
||||
OPCODE(ZeroExtendWordToLong, T::U64, T::U32 )
|
||||
OPCODE(ByteReverseWord, T::U32, T::U32 )
|
||||
OPCODE(ByteReverseHalf, T::U16, T::U16 )
|
||||
OPCODE(ByteReverseDual, T::U64, T::U64 )
|
||||
|
||||
Reference in New Issue
Block a user