fp.isa revision 2573
112157Sandreas.sandberg@arm.com// -*- mode:c++ -*- 212157Sandreas.sandberg@arm.com 312157Sandreas.sandberg@arm.com//////////////////////////////////////////////////////////////////// 412157Sandreas.sandberg@arm.com// 512157Sandreas.sandberg@arm.com// Floating Point operate instructions 612157Sandreas.sandberg@arm.com// 712157Sandreas.sandberg@arm.com 812157Sandreas.sandberg@arm.comoutput header {{ 912157Sandreas.sandberg@arm.com /** 1012157Sandreas.sandberg@arm.com * Base class for FP operations. 1112157Sandreas.sandberg@arm.com */ 1212157Sandreas.sandberg@arm.com class FPOp : public MipsStaticInst 1312157Sandreas.sandberg@arm.com { 1412157Sandreas.sandberg@arm.com protected: 1512157Sandreas.sandberg@arm.com 1612157Sandreas.sandberg@arm.com /// Constructor 1712157Sandreas.sandberg@arm.com FPOp(const char *mnem, MachInst _machInst, OpClass __opClass) : MipsStaticInst(mnem, _machInst, __opClass) 1812157Sandreas.sandberg@arm.com { 1912157Sandreas.sandberg@arm.com } 2012157Sandreas.sandberg@arm.com 2112157Sandreas.sandberg@arm.com std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 2212157Sandreas.sandberg@arm.com }; 2312157Sandreas.sandberg@arm.com}}; 2412157Sandreas.sandberg@arm.com 2512157Sandreas.sandberg@arm.comoutput decoder {{ 2612157Sandreas.sandberg@arm.com std::string FPOp::generateDisassembly(Addr pc, const SymbolTable *symtab) const 2712157Sandreas.sandberg@arm.com { 2812157Sandreas.sandberg@arm.com return "Disassembly of integer instruction\n"; 2912157Sandreas.sandberg@arm.com } 3012157Sandreas.sandberg@arm.com}}; 3112157Sandreas.sandberg@arm.com 3212157Sandreas.sandberg@arm.com 3312157Sandreas.sandberg@arm.com// Primary format for float operate instructions: 3412157Sandreas.sandberg@arm.comdef format FloatOp(code, *flags) {{ 3512157Sandreas.sandberg@arm.com iop = InstObjParams(name, Name, 'MipsStaticInst', CodeBlock(code), flags) 3612157Sandreas.sandberg@arm.com header_output = BasicDeclare.subst(iop) 3712157Sandreas.sandberg@arm.com decoder_output = BasicConstructor.subst(iop) 3812157Sandreas.sandberg@arm.com decode_block = BasicDecode.subst(iop) 3912157Sandreas.sandberg@arm.com exec_output = BasicExecute.subst(iop) 4012157Sandreas.sandberg@arm.com}}; 4112157Sandreas.sandberg@arm.com 4212157Sandreas.sandberg@arm.com// Primary format for float64 operate instructions: 4312157Sandreas.sandberg@arm.comdef format Float64Op(code, *flags) {{ 4412157Sandreas.sandberg@arm.com iop = InstObjParams(name, Name, 'MipsStaticInst', CodeBlock(code), flags) 4512157Sandreas.sandberg@arm.com header_output = BasicDeclare.subst(iop) 4612157Sandreas.sandberg@arm.com decoder_output = BasicConstructor.subst(iop) 4712157Sandreas.sandberg@arm.com decode_block = BasicDecode.subst(iop) 4812161Sandreas.sandberg@arm.com exec_output = BasicExecute.subst(iop) 4912161Sandreas.sandberg@arm.com}}; 5012157Sandreas.sandberg@arm.com