Changeset 36 in dev for BasicCompiler64/amd64_main.cpp


Ignore:
Timestamp:
Jan 20, 2007, 4:55:26 AM (17 years ago)
Author:
dai_9181
Message:

Boolean型に対応。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BasicCompiler64/amd64_main.cpp

    r19 r36  
    824824    OpBuffer[obp++]=(char)(0xC0| REGISTER_OPERAND(reg1)<<3 | REGISTER_OPERAND(reg2));
    825825}
     826void op_sbb_RR( int op_size, int reg1, int reg2 ){
     827    //sbb reg1,reg2
     828
     829    //rexプリフィックス
     830    set_rex(0,reg1,0,reg2);
     831
     832    //オペコード
     833    OpBuffer[obp++]=(char)0x1B;
     834
     835    //レジスタ
     836    OpBuffer[obp++]=(char)(0xC0| REGISTER_OPERAND(reg1)<<3 | REGISTER_OPERAND(reg2));
     837}
    826838
    827839
     
    12831295    OpBuffer[obp++]=(char)(0xD0| REGISTER_OPERAND(reg));
    12841296}
     1297void op_neg( int reg ){
     1298    //neg reg
     1299
     1300    //オペコード
     1301    OpBuffer[obp++]=(char)0xF7;
     1302
     1303    //レジスタ
     1304    OpBuffer[obp++]=(char)(0xD8| REGISTER_OPERAND(reg));
     1305}
    12851306
    12861307
     
    13821403    //8ビット値
    13831404    OpBuffer[obp++]=byte_data;
     1405}
     1406void op_setne( int reg ){
     1407    //オペコード
     1408    OpBuffer[obp++]=(char)0x0F;
     1409    OpBuffer[obp++]=(char)0x95;
     1410
     1411    //レジスタ
     1412    OpBuffer[obp++]=(char)( 0xC0 | REGISTER_OPERAND(reg) );
    13841413}
    13851414
Note: See TracChangeset for help on using the changeset viewer.