// The OS/K Team licences this file to you under the MIT license. // See the LICENSE file in the project root for more information. #include "instrs.h" #include "arch_i.h" IMPL_START_1(jmp) { ctx->r[RIP].val = v1; } IMPL_END; IMPL_START_1(jz) { if (ctx->r[FLG].val & ZF) ctx->r[RIP].val = v1; } IMPL_END; IMPL_START_1(jnz) { if (!(ctx->r[FLG].val & ZF)) ctx->r[RIP].val = v1; } IMPL_END; IMPL_START_1(je) { if (ctx->r[FLG].val & ZF) ctx->r[RIP].val = v1; } IMPL_END; IMPL_START_1(jne) { if (!(ctx->r[FLG].val & ZF)) ctx->r[RIP].val = v1; } IMPL_END; IMPL_START_1(ja) { if (!(ctx->r[FLG].val & ZF) && !(ctx->r[FLG].val & CF)) ctx->r[RIP].val = v1; } IMPL_END; IMPL_START_1(jae) { if (!(ctx->r[FLG].val & CF)) ctx->r[RIP].val = v1; } IMPL_END; IMPL_START_1(jb) { if (!(ctx->r[FLG].val & ZF) && ctx->r[FLG].val & CF) ctx->r[RIP].val = v1; } IMPL_END; IMPL_START_1(jbe) { if (ctx->r[FLG].val & CF) ctx->r[RIP].val = v1; } IMPL_END;