186 lines
2.7 KiB
C++
186 lines
2.7 KiB
C++
#include "builder.hpp"
|
|
#include "vm.hpp"
|
|
#include <utility>
|
|
|
|
using namespace vc5;
|
|
|
|
void Builder::nop()
|
|
{
|
|
auto ins = std::to_underlying(Op::Nop);
|
|
push(ins);
|
|
}
|
|
|
|
void Builder::hlt()
|
|
{
|
|
auto ins = std::to_underlying(Op::Nop);
|
|
push(ins);
|
|
}
|
|
|
|
void Builder::jmp_reg(Reg op1)
|
|
{
|
|
}
|
|
|
|
void Builder::jmp_imm(uint16_t op1)
|
|
{
|
|
}
|
|
|
|
void Builder::jnz_reg(Reg op1, Reg op2)
|
|
{
|
|
}
|
|
|
|
void Builder::jnz_imm(Reg op1, uint16_t op2)
|
|
{
|
|
}
|
|
|
|
void Builder::mov_word_load_reg(Reg dst, Reg src)
|
|
{
|
|
}
|
|
|
|
void Builder::mov_word_load_imm(Reg dst, uint16_t imm)
|
|
{
|
|
}
|
|
|
|
void Builder::mov_word_load_mem_reg(Reg dst, Reg addr, uint16_t offset)
|
|
{
|
|
}
|
|
|
|
void Builder::mov_word_load_mem_imm(Reg dst, uint16_t addr)
|
|
{
|
|
}
|
|
|
|
void Builder::mov_word_store_reg_reg(Reg dst, uint16_t offset, Reg op2)
|
|
{
|
|
}
|
|
|
|
void Builder::mov_word_store_reg_imm(Reg dst, uint16_t offset, uint16_t op2)
|
|
{
|
|
}
|
|
|
|
void Builder::mov_word_store_imm_reg(uint16_t dst, Reg op2)
|
|
{
|
|
}
|
|
|
|
void Builder::mov_word_store_imm_imm(uint16_t dst, uint16_t op2)
|
|
{
|
|
}
|
|
|
|
void Builder::mov_byte_load_reg(Reg dst, Reg src)
|
|
{
|
|
}
|
|
|
|
void Builder::mov_byte_load_imm(Reg dst, uint8_t imm)
|
|
{
|
|
}
|
|
|
|
void Builder::mov_byte_load_mem_reg(Reg dst, Reg addr, uint16_t offset)
|
|
{
|
|
}
|
|
|
|
void Builder::mov_byte_load_mem_imm(Reg dst, uint16_t addr)
|
|
{
|
|
}
|
|
|
|
void Builder::mov_byte_store_reg_reg(Reg dst, uint16_t offset, Reg op2)
|
|
{
|
|
}
|
|
|
|
void Builder::mov_byte_store_reg_imm(Reg dst, uint16_t offset, uint8_t op2)
|
|
{
|
|
}
|
|
|
|
void Builder::mov_byte_store_imm_reg(uint16_t dst, Reg op2)
|
|
{
|
|
}
|
|
|
|
void Builder::mov_byte_store_imm_imm(uint16_t dst, uint8_t op2)
|
|
{
|
|
}
|
|
|
|
void Builder::cmp_reg(Reg op1, Reg op2)
|
|
{
|
|
}
|
|
|
|
void Builder::cmp_imm(Reg op1, Reg op2)
|
|
{
|
|
}
|
|
|
|
void Builder::or_reg(Reg dst, Reg op1, Reg op2)
|
|
{
|
|
}
|
|
|
|
void Builder::and_reg(Reg dst, Reg op1, Reg op2)
|
|
{
|
|
}
|
|
|
|
void Builder::xor_reg(Reg dst, Reg op1, Reg op2)
|
|
{
|
|
}
|
|
|
|
void Builder::shl_reg(Reg dst, Reg op1, Reg op2)
|
|
{
|
|
}
|
|
|
|
void Builder::rshl_reg(Reg dst, Reg op1, Reg op2)
|
|
{
|
|
}
|
|
|
|
void Builder::shr_reg(Reg dst, Reg op1, Reg op2)
|
|
{
|
|
}
|
|
|
|
void Builder::rshr_reg(Reg dst, Reg op1, Reg op2)
|
|
{
|
|
}
|
|
|
|
void Builder::add_reg(Reg dst, Reg op1, Reg op2)
|
|
{
|
|
}
|
|
|
|
void Builder::sub_reg(Reg dst, Reg op1, Reg op2)
|
|
{
|
|
}
|
|
|
|
void Builder::rsub_reg(Reg dst, Reg op1, Reg op2)
|
|
{
|
|
}
|
|
|
|
void Builder::or_imm(Reg dst, Reg op1, uint16_t op2)
|
|
{
|
|
}
|
|
|
|
void Builder::and_imm(Reg dst, Reg op1, uint16_t op2)
|
|
{
|
|
}
|
|
|
|
void Builder::xor_imm(Reg dst, Reg op1, uint16_t op2)
|
|
{
|
|
}
|
|
|
|
void Builder::shl_imm(Reg dst, Reg op1, uint16_t op2)
|
|
{
|
|
}
|
|
|
|
void Builder::rshl_imm(Reg dst, Reg op1, uint16_t op2)
|
|
{
|
|
}
|
|
|
|
void Builder::shr_imm(Reg dst, Reg op1, uint16_t op2)
|
|
{
|
|
}
|
|
|
|
void Builder::rshr_imm(Reg dst, Reg op1, uint16_t op2)
|
|
{
|
|
}
|
|
|
|
void Builder::add_imm(Reg dst, Reg op1, uint16_t op2)
|
|
{
|
|
}
|
|
|
|
void Builder::sub_imm(Reg dst, Reg op1, uint16_t op2)
|
|
{
|
|
}
|
|
|
|
void Builder::rsub_imm(Reg dst, Reg op1, uint16_t op2)
|
|
{
|
|
}
|