From 8f47e8feb60e60cc85674a9eef281197ed8a7c27 Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Mon, 16 Nov 2020 17:56:13 +0100 Subject: [PATCH] stage2 aarch64: add NOP instruction --- src/codegen/aarch64.zig | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/codegen/aarch64.zig b/src/codegen/aarch64.zig index 925d3e122d..ab5b5da604 100644 --- a/src/codegen/aarch64.zig +++ b/src/codegen/aarch64.zig @@ -238,6 +238,9 @@ pub const Instruction = union(enum) { fixed: u5 = 0b00101, op: u1, }, + NoOperation: packed struct { + fixed: u32 = 0b1101010100_0_00_011_0010_0000_000_11111, + }, pub fn toU32(self: Instruction) u32 { return switch (self) { @@ -247,6 +250,7 @@ pub const Instruction = union(enum) { .ExceptionGeneration => |v| @bitCast(u32, v), .UnconditionalBranchRegister => |v| @bitCast(u32, v), .UnconditionalBranchImmediate => |v| @bitCast(u32, v), + .NoOperation => |v| @bitCast(u32, v), }; } @@ -599,6 +603,12 @@ pub const Instruction = union(enum) { pub fn bl(offset: i28) Instruction { return unconditionalBranchImmediate(1, offset); } + + // Nop + + pub fn nop() Instruction { + return Instruction{ .NoOperation = {} }; + } }; test "" {