Update InstEmitAluHelper.cs

This commit is contained in:
LDj3SNuD 2018-11-10 16:33:12 +01:00 committed by GitHub
commit c0430206e5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -190,23 +190,32 @@ namespace ChocolArm64.Instructions
} }
} }
public static void EmitSetNzcv(ILEmitterCtx context, int nzcv) public static void EmitSetNzcv(ILEmitterCtx context)
{ {
context.EmitLdc_I4((nzcv >> 0) & 1); context.Emit(OpCodes.Dup);
context.Emit(OpCodes.Ldc_I4_1);
context.Emit(OpCodes.And);
context.EmitStflg((int)PState.VBit); context.EmitStflg((int)PState.VBit);
context.EmitLdc_I4((nzcv >> 1) & 1); context.Emit(OpCodes.Ldc_I4_1);
context.Emit(OpCodes.Shr);
context.Emit(OpCodes.Dup);
context.Emit(OpCodes.Ldc_I4_1);
context.Emit(OpCodes.And);
context.EmitStflg((int)PState.CBit); context.EmitStflg((int)PState.CBit);
context.EmitLdc_I4((nzcv >> 2) & 1); context.Emit(OpCodes.Ldc_I4_1);
context.Emit(OpCodes.Shr);
context.Emit(OpCodes.Dup);
context.Emit(OpCodes.Ldc_I4_1);
context.Emit(OpCodes.And);
context.EmitStflg((int)PState.ZBit); context.EmitStflg((int)PState.ZBit);
context.EmitLdc_I4((nzcv >> 3) & 1); context.Emit(OpCodes.Ldc_I4_1);
context.Emit(OpCodes.Shr);
context.Emit(OpCodes.Ldc_I4_1);
context.Emit(OpCodes.And);
context.EmitStflg((int)PState.NBit); context.EmitStflg((int)PState.NBit);
} }
} }
} }