From 9ce1e413e4d5a9f48a57b3ce357e71d62281c7c8 Mon Sep 17 00:00:00 2001 From: cuz Date: Tue, 29 May 2001 18:11:06 +0000 Subject: [PATCH] Working on the backend git-svn-id: svn://svn.cc65.org/cc65/trunk@767 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- src/cc65/opcodes.c | 56 ++++++++++++++++++++++++++++++++++------------ src/cc65/opcodes.h | 8 +++++-- 2 files changed, 48 insertions(+), 16 deletions(-) diff --git a/src/cc65/opcodes.c b/src/cc65/opcodes.c index c6d9b35f5..bdd2dd664 100644 --- a/src/cc65/opcodes.c +++ b/src/cc65/opcodes.c @@ -58,6 +58,27 @@ const OPCDesc OPCTable[OPCODE_COUNT] = { /* Opcodes for the virtual stack machine */ + { OPC_CALL, /* opcode */ + "call", /* mnemonic */ + 0, /* size */ + REG_NONE, /* use */ + REG_NONE, /* chg */ + OF_CPU_VM | OF_CALL /* flags */ + }, + { OPC_ENTER, /* opcode */ + "enter", /* mnemonic */ + 0, /* size */ + REG_Y, /* use */ + REG_AXY, /* chg */ + OF_CPU_VM /* flags */ + }, + { OPC_JMP, /* opcode */ + "jump", /* mnemonic */ + 0, /* size */ + REG_NONE, /* use */ + REG_NONE, /* chg */ + OF_CPU_VM | OF_UBRA /* flags */ + }, { OPC_LDA, /* opcode */ "loada", /* mnemonic */ 0, /* size */ @@ -79,6 +100,20 @@ const OPCDesc OPCTable[OPCODE_COUNT] = { REG_EAX, /* chg */ OF_CPU_VM | OF_LOAD /* flags */ }, + { OPC_LEA, /* opcode */ + "lea", /* mnemonic */ + 0, /* size */ + REG_NONE, /* use */ + REG_AX, /* chg */ + OF_CPU_VM /* flags */ + }, + { OPC_LEAVE, /* opcode */ + "leave", /* mnemonic */ + 0, /* size */ + REG_NONE, /* use */ + REG_NONE, /* chg */ + OF_CPU_VM /* flags */ + }, { OPC_PHA, /* opcode */ "pusha", /* mnemonic */ 0, /* size */ @@ -100,6 +135,13 @@ const OPCDesc OPCTable[OPCODE_COUNT] = { REG_NONE, /* chg */ OF_CPU_VM /* flags */ }, + { OPC_SPACE, /* opcode */ + "space", /* mnemonic */ + 0, /* size */ + REG_NONE, /* use */ + REG_NONE, /* chg */ + OF_CPU_VM /* flags */ + }, { OPC_STA, /* opcode */ "storea", /* mnemonic */ 0, /* size */ @@ -121,20 +163,6 @@ const OPCDesc OPCTable[OPCODE_COUNT] = { REG_NONE, /* chg */ OF_CPU_VM /* flags */ }, - { OPC_LEA, /* opcode */ - "lea", /* mnemonic */ - 0, /* size */ - REG_NONE, /* use */ - REG_AX, /* chg */ - OF_CPU_VM /* flags */ - }, - { OPC_JMP, /* opcode */ - "jump", /* mnemonic */ - 0, /* size */ - REG_NONE, /* use */ - REG_NONE, /* chg */ - OF_CPU_VM | OF_UBRA /* flags */ - }, /* 65XX opcodes */ { OP65_ADC, /* opcode */ diff --git a/src/cc65/opcodes.h b/src/cc65/opcodes.h index bd8b75e48..e5bbbb7ee 100644 --- a/src/cc65/opcodes.h +++ b/src/cc65/opcodes.h @@ -53,17 +53,21 @@ typedef enum { /* Opcodes for the virtual stack machine */ + OPC_CALL, + OPC_ENTER, + OPC_JMP, OPC_LDA, OPC_LDAX, OPC_LDEAX, + OPC_LEA, + OPC_LEAVE, OPC_PHA, OPC_PHAX, OPC_PHEAX, + OPC_SPACE, OPC_STA, OPC_STAX, OPC_STEAX, - OPC_LEA, - OPC_JMP, /* 65XX opcodes */ OP65_ADC,