Ignore:
Timestamp:
Jul 21, 2007, 11:47:40 PM (17 years ago)
Author:
dai_9181
Message:

CodeGeneratorクラスのベースを実装

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler32/Opcode.h

    r206 r225  
    33#include <Type.h>
    44#include <Procedure.h>
    5 
    6 
    7 //未定義の定数情報
    8 #define IMAGE_FILE_MACHINE_AMD64 0x8664
    9 
    10 
    11 //レジスタを示す定数
    12 #define REG_NON -1
    13 #define REG_EAX 0x00    //reg:000
    14 #define REG_ECX 0x01    //reg:001
    15 #define REG_EDX 0x02    //reg:010
    16 #define REG_EBX 0x03    //reg:011
    17 #define REG_ESP 0x04    //reg:100
    18 #define REG_EBP 0x05    //reg:101
    19 #define REG_ESI 0x06    //reg:110
    20 #define REG_EDI 0x07    //reg:111
    21 
    22 #define REG_RAX REG_EAX
    23 #define REG_RCX REG_ECX
    24 #define REG_RDX REG_EDX
    25 #define REG_RBX REG_EBX
    26 #define REG_RSP REG_ESP
    27 #define REG_RBP REG_EBP
    28 #define REG_RSI REG_ESI
    29 #define REG_RDI REG_EDI
    30 
    31 #define REGISTER_OPERAND(reg) (reg&0x07)
     5#include "MachineFixed.h"
     6
    327
    338//変数の種類
     
    190165void SetReg_RealVariable(int type,RELATIVE_VAR *pRelativeVar);
    191166void SetReg_WholeVariable(int type,RELATIVE_VAR *pRelativeVar,int reg, bool is64Head = false);
    192 void PushDoubleVariable(RELATIVE_VAR *pRelativeVar);
    193167void PushLongVariable(RELATIVE_VAR *pRelativeVar);
    194 void PushIntegerVariable(RELATIVE_VAR *pRelativeVar);
    195 void PushWordVariable(RELATIVE_VAR *pRelativeVar);
    196 void PushCharVariable(RELATIVE_VAR *pRelativeVar);
    197 void PushByteVariable(RELATIVE_VAR *pRelativeVar);
    198168
    199169//Compile_Object.cpp
     
    294264////////////////////////////////
    295265
    296 //Mod(モード)
    297 #define MOD_BASE        (char)0x00
    298 #define MOD_DISP32      (char)0xFF
    299 #define MOD_BASE_DISP8  (char)0x40
    300 #define MOD_BASE_DISP32 (char)0x80
    301 #define MOD_REG             (char)0xC0
    302 
    303 #define USE_OFFSET 1
    304 #define NON_OFFSET 0
    305 
    306266//op32_main.cpp
    307267BOOL IsSafeReg(int reg);
     268/*
    308269void op_mov_RV          (int reg,int offset);
    309270void op_mov_RV          (int op_size,int reg,int offset);
     
    357318void op_call(const UserProc *pUserProc);
    358319void op_ret();
     320*/
Note: See TracChangeset for help on using the changeset viewer.