Ignore:
Timestamp:
Jul 22, 2007, 4:58:47 AM (17 years ago)
Author:
dai_9181
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler64/NumOpe_Logical.cpp

    r206 r226  
    11#include "stdafx.h"
     2
     3#include <Compiler.h>
    24
    35#include "../BasicCompiler_Common/common.h"
     
    2830        if(idCalc==CALC_XOR){
    2931            //xor reg1,reg2
    30             op_xor_reg(sizeof(_int64),reg1,reg2);
     32            compiler.codeGenerator.op_xor_reg(sizeof(_int64),reg1,reg2);
    3133        }
    3234        else if(idCalc==CALC_OR){
    3335            //or reg1,reg2
    34             op_or_reg(sizeof(_int64),reg1,reg2);
     36            compiler.codeGenerator.op_or_reg(sizeof(_int64),reg1,reg2);
    3537        }
    3638        else if(idCalc==CALC_AND){
    3739            //and reg1,reg2
    38             op_and_reg(sizeof(_int64),reg1,reg2);
     40            compiler.codeGenerator.op_and_reg(sizeof(_int64),reg1,reg2);
    3941        }
    4042
     
    5456        if(idCalc==CALC_ADDITION){
    5557            //add reg1,reg2
    56             op_xor_reg(sizeof(long),reg1,reg2);
     58            compiler.codeGenerator.op_xor_reg(sizeof(long),reg1,reg2);
    5759        }
    5860        else if(idCalc==CALC_OR){
    5961            //or reg1,reg2
    60             op_or_reg(sizeof(long),reg1,reg2);
     62            compiler.codeGenerator.op_or_reg(sizeof(long),reg1,reg2);
    6163        }
    6264        else if(idCalc==CALC_AND){
    6365            //and reg1,reg2
    64             op_and_reg(sizeof(long),reg1,reg2);
     66            compiler.codeGenerator.op_and_reg(sizeof(long),reg1,reg2);
    6567        }
    6668
     
    99101
    100102        //cmp reg,0
    101         op_cmp_value(GetTypeSize(type[sp-1],-1),reg,0);
     103        compiler.codeGenerator.op_cmp_value(GetTypeSize(type[sp-1],-1),reg,0);
    102104
    103105        //setne al
    104         op_setne( REG_RAX );
     106        compiler.codeGenerator.op_setne( REG_RAX );
    105107
    106108        //and rax,000000FFh
    107         op_and64_value(REG_RAX,(int)0xFF);
     109        compiler.codeGenerator.op_and64_value(REG_RAX,(int)0xFF);
    108110
    109111        //neg
    110         op_neg( REG_RAX );
     112        compiler.codeGenerator.op_neg( REG_RAX );
    111113
    112114        //sbb rax, rax
    113         op_sbb_RR( sizeof(_int64), REG_RAX, REG_RAX );
     115        compiler.codeGenerator.op_sbb_RR( sizeof(_int64), REG_RAX, REG_RAX );
    114116
    115117        //add rax, 1
    116         op_add_RV( REG_RAX, 1 );
     118        compiler.codeGenerator.op_add_RV( REG_RAX, 1 );
    117119
    118120        if( reg != REG_RAX ){
    119121            //mov reg,rax
    120             op_mov_RR( reg, REG_RAX );
     122            compiler.codeGenerator.op_mov_RR( reg, REG_RAX );
    121123
    122124            //mov qword ptr[rsp+offset],rax     ※スタックフレームを利用
     
    133135
    134136        //not reg
    135         op_not_reg(sizeof(_int64),reg);
     137        compiler.codeGenerator.op_not_reg(sizeof(_int64),reg);
    136138
    137139        if(reg==REG_R14){
     
    144146
    145147        //not reg
    146         op_not_reg(sizeof(long),reg);
     148        compiler.codeGenerator.op_not_reg(sizeof(long),reg);
    147149
    148150        if(reg==REG_R14){
Note: See TracChangeset for help on using the changeset viewer.