// SPDX-License-Identifier: MIT
// Copyright (C) 2018-present iced project and contributors

// ⚠️This file was generated by GENERATOR!🦹‍♂️

package com.github.icedland.iced.x86.asm;

import org.junit.jupiter.api.Test;

import com.github.icedland.iced.x86.*;
import static com.github.icedland.iced.x86.asm.AsmRegisters.*;

@SuppressWarnings("cast")
final class CodeAssembler16GenWTests extends CodeAssemblerTestsBase {
	CodeAssembler16GenWTests() {
		super(16);
	}

	@Test
	void wait_() {
		testAssembler(c -> c.wait_(), Instruction.create(Code.WAIT));
	}

	@Test
	void wbinvd() {
		testAssembler(c -> c.wbinvd(), Instruction.create(Code.WBINVD));
	}

	@Test
	void wbnoinvd() {
		testAssembler(c -> c.wbnoinvd(), Instruction.create(Code.WBNOINVD));
	}

	@Test
	void wrmsr() {
		testAssembler(c -> c.wrmsr(), Instruction.create(Code.WRMSR));
	}

	@Test
	void wrmsrns() {
		testAssembler(c -> c.wrmsrns(), Instruction.create(Code.WRMSRNS));
	}

	@Test
	void wrpkru() {
		testAssembler(c -> c.wrpkru(), Instruction.create(Code.WRPKRU));
	}

	@Test
	void wrshr_r32() {
		testAssembler(c -> c.wrshr(edx), Instruction.create(Code.WRSHR_RM32, ICRegisters.edx), TestInstrFlags.NONE, com.github.icedland.iced.x86.dec.DecoderOptions.CYRIX);
	}

	@Test
	void wrshr_m() {
		testAssembler(c -> c.wrshr(dword_ptr(0x0L).base(si)), Instruction.create(Code.WRSHR_RM32, new MemoryOperand(ICRegisters.si, ICRegister.NONE, 1, 0x0L, 0, false, ICRegister.NONE)), TestInstrFlags.NONE, com.github.icedland.iced.x86.dec.DecoderOptions.CYRIX);
	}

	@Test
	void wrssd_m_r32() {
		testAssembler(c -> c.wrssd(mem_ptr(0x0L).base(si), ebx), Instruction.create(Code.WRSSD_M32_R32, new MemoryOperand(ICRegisters.si, ICRegister.NONE, 1, 0x0L, 0, false, ICRegister.NONE), ICRegisters.ebx));
	}

	@Test
	void wrudbg() {
		testAssembler(c -> c.wrudbg(), Instruction.create(Code.WRUDBG), TestInstrFlags.NONE, com.github.icedland.iced.x86.dec.DecoderOptions.UDBG);
	}

	@Test
	void wrussd_m_r32() {
		testAssembler(c -> c.wrussd(mem_ptr(0x0L).base(si), ebx), Instruction.create(Code.WRUSSD_M32_R32, new MemoryOperand(ICRegisters.si, ICRegister.NONE, 1, 0x0L, 0, false, ICRegister.NONE), ICRegisters.ebx));
	}

}
