| 3070 | } |
| 3071 | |
| 3072 | void OpDispatchBuilder::PFPNACCOp(OpcodeArgs) { |
| 3073 | const auto Size = OpSizeFromSrc(Op); |
| 3074 | |
| 3075 | Ref Dest = LoadSource(FPRClass, Op, Op->Dest, Op->Flags); |
| 3076 | Ref Src = LoadSource(FPRClass, Op, Op->Src[0], Op->Flags); |
| 3077 | |
| 3078 | Ref ResAdd {}; |
| 3079 | Ref ResSub {}; |
| 3080 | auto UpperSubDest = _VDupElement(Size, OpSize::i32Bit, Dest, 1); |
| 3081 | |
| 3082 | ResSub = _VFSub(OpSize::i32Bit, OpSize::i32Bit, Dest, UpperSubDest); |
| 3083 | ResAdd = _VFAddP(Size, OpSize::i32Bit, Src, Src); |
| 3084 | |
| 3085 | auto Result = _VInsElement(OpSize::i64Bit, OpSize::i32Bit, 1, 0, ResSub, ResAdd); |
| 3086 | |
| 3087 | StoreResult(FPRClass, Op, Result, OpSize::iInvalid); |
| 3088 | } |
| 3089 | |
| 3090 | void OpDispatchBuilder::PSWAPDOp(OpcodeArgs) { |
| 3091 | const auto Size = OpSizeFromSrc(Op); |
nothing calls this directly
no outgoing calls
no test coverage detected