ppcdecoder.cpp File Reference

#include <assert.h>
#include "exp.h"
#include "prog.h"
#include "proc.h"
#include "decoder.h"
#include "ppcdecoder.h"
#include "rtl.h"
#include "BinaryFile.h"
#include "boomerang.h"
#include <iostream>

Go to the source code of this file.

Defines

#define DIS_ADDR   (new Const(addr))
#define DIS_BEG   (new Const(beg))
#define DIS_BICR   (new Const(BIcr))
#define DIS_CRBA   (crBit(crbA))
#define DIS_CRBB   (crBit(crbB))
#define DIS_CRBD   (crBit(crbD))
#define DIS_CRFD   (new Const(crfd))
#define DIS_D   (new Const(d))
#define DIS_DISP   (new Binary(opPlus, dis_RAmbz(ra), new Const(d)))
#define DIS_END   (new Const(end))
#define DIS_FA   (dis_Reg(fa+32))
#define DIS_FB   (dis_Reg(fb+32))
#define DIS_FD   (dis_Reg(fd+32))
#define DIS_FS   (dis_Reg(fs+32))
#define DIS_INDEX   (new Binary(opPlus, DIS_RAZ, DIS_NZRB))
#define DIS_NZRA   (dis_Reg(ra))
#define DIS_NZRB   (dis_Reg(rb))
#define DIS_RA   (dis_Reg(ra))
#define DIS_RAZ   (dis_RAmbz(ra))
#define DIS_RB   (dis_Reg(rb))
#define DIS_RD   (dis_Reg(rd))
#define DIS_RD_NUM   (new Const(rd))
#define DIS_RDR   (dis_Reg(rd))
#define DIS_RELADDR   (new Const(reladdr - delta))
#define DIS_RS   (dis_Reg(rs))
#define DIS_RS_NUM   (new Const(rs))
#define DIS_SIMM   (new Const(simm))
#define DIS_UIMM   (new Const(uimm))
#define PPC_COND_JUMP(name, size, relocd, cond, BIcr)
#define sign_extend(N, SIZE)   (((int)((N) << (sizeof(unsigned)*8-(SIZE)))) >> (sizeof(unsigned)*8-(SIZE)))

Functions

ExpcrBit (int bitNum)
void unused (char *x)


Define Documentation

#define DIS_ADDR   (new Const(addr))
 

Definition at line 59 of file ppcdecoder.cpp.

Referenced by SparcDecoder::decodeInstruction().

#define DIS_BEG   (new Const(beg))
 

Definition at line 69 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define DIS_BICR   (new Const(BIcr))
 

Definition at line 66 of file ppcdecoder.cpp.

#define DIS_CRBA   (crBit(crbA))
 

Definition at line 62 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define DIS_CRBB   (crBit(crbB))
 

Definition at line 63 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define DIS_CRBD   (crBit(crbD))
 

Definition at line 61 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define DIS_CRFD   (new Const(crfd))
 

Definition at line 51 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define DIS_D   (new Const(d))
 

Definition at line 56 of file ppcdecoder.cpp.

#define DIS_DISP   (new Binary(opPlus, dis_RAmbz(ra), new Const(d)))
 

Definition at line 64 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define DIS_END   (new Const(end))
 

Definition at line 70 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define DIS_FA   (dis_Reg(fa+32))
 

Definition at line 73 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define DIS_FB   (dis_Reg(fb+32))
 

Definition at line 74 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define DIS_FD   (dis_Reg(fd+32))
 

Definition at line 71 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define DIS_FS   (dis_Reg(fs+32))
 

Definition at line 72 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define DIS_INDEX   (new Binary(opPlus, DIS_RAZ, DIS_NZRB))
 

Definition at line 65 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define DIS_NZRA   (dis_Reg(ra))
 

Definition at line 57 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define DIS_NZRB   (dis_Reg(rb))
 

Definition at line 58 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define DIS_RA   (dis_Reg(ra))
 

Definition at line 53 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define DIS_RAZ   (dis_RAmbz(ra))
 

Definition at line 54 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define DIS_RB   (dis_Reg(rb))
 

Definition at line 55 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define DIS_RD   (dis_Reg(rd))
 

Definition at line 49 of file ppcdecoder.cpp.

Referenced by SparcDecoder::decodeInstruction(), and PPCDecoder::decodeInstruction().

#define DIS_RD_NUM   (new Const(rd))
 

Definition at line 68 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define DIS_RDR   (dis_Reg(rd))
 

Definition at line 52 of file ppcdecoder.cpp.

Referenced by SparcDecoder::decodeInstruction().

#define DIS_RELADDR   (new Const(reladdr - delta))
 

Definition at line 60 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define DIS_RS   (dis_Reg(rs))
 

Definition at line 48 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define DIS_RS_NUM   (new Const(rs))
 

Definition at line 67 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define DIS_SIMM   (new Const(simm))
 

Definition at line 47 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define DIS_UIMM   (new Const(uimm))
 

Definition at line 46 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define PPC_COND_JUMP name,
size,
relocd,
cond,
BIcr   ) 
 

Value:

result.rtl = new RTL(pc, stmts); \
    BranchStatement* jump = new BranchStatement; \
    result.rtl->appendStmt(jump); \
    result.numBytes = size; \
    jump->setDest(relocd-delta); \
    jump->setCondType(cond); \
    SHOW_ASM(name<<" "<<BIcr<<", 0x"<<std::hex<<relocd-delta)

Definition at line 76 of file ppcdecoder.cpp.

Referenced by PPCDecoder::decodeInstruction().

#define sign_extend N,
SIZE   )     (((int)((N) << (sizeof(unsigned)*8-(SIZE)))) >> (sizeof(unsigned)*8-(SIZE)))
 

Definition at line 1 of file ppcdecoder.cpp.


Function Documentation

Exp* crBit int  bitNum  ) 
 

void unused char *  x  ) 
 

Definition at line 93 of file ppcdecoder.cpp.


Generated on Tue Sep 19 21:18:37 2006 for Boomerang by  doxygen 1.4.6