00001
00002 #ifndef ROSE_ASM_UNPARSER_COMPAT_H
00003 #define ROSE_ASM_UNPARSER_COMPAT_H
00004
00005 #include "AsmUnparser.h"
00006
00008 std::string unparseInstruction(SgAsmInstruction*, const AsmUnparser::LabelMap *labels=NULL);
00009
00011 std::string unparseInstructionWithAddress(SgAsmInstruction*, const AsmUnparser::LabelMap *labels=NULL);
00012
00014 std::string unparseMnemonic(SgAsmInstruction*);
00015
00018 std::string unparseExpression(SgAsmExpression*, const AsmUnparser::LabelMap *labels=NULL);
00019
00020 std::string unparseAsmStatement(SgAsmStatement*);
00021
00022 void unparseAsmStatementToFile(const std::string& filename, SgAsmStatement*);
00023
00024 std::string unparseAsmInterpretation(SgAsmInterpretation*);
00025
00026
00027
00028
00029
00030 std::string unparseX86Mnemonic(SgAsmx86Instruction*);
00031 std::string unparseX86Expression(SgAsmExpression*, const AsmUnparser::LabelMap*);
00032 std::string unparseX86Expression(SgAsmExpression*, const AsmUnparser::LabelMap*, bool leaMode);
00033 std::string unparseX86Register(const RegisterDescriptor&);
00034
00035
00036
00037
00038 enum ArmSignForExpressionUnparsing
00039 {
00040 arm_sign_none,
00041 arm_sign_plus,
00042 arm_sign_minus
00043 } ;
00044
00045 std::string unparseArmMnemonic(SgAsmArmInstruction*);
00046 std::string unparseArmExpression(SgAsmExpression*, const AsmUnparser::LabelMap*);
00047
00048
00049
00050
00051
00052 std::string unparsePowerpcMnemonic(SgAsmPowerpcInstruction*);
00053 std::string unparsePowerpcExpression(SgAsmExpression*, const AsmUnparser::LabelMap*);
00054
00055 #endif