1// -*- mode:c++ -*- 2 3// Copyright (c) 2003-2005 The Regents of The University of Michigan 4// All rights reserved. 5// 6// Redistribution and use in source and binary forms, with or without 7// modification, are permitted provided that the following conditions are 8// met: redistributions of source code must retain the above copyright --- 279 unchanged lines hidden (view full) --- 288 } 289}}; 290 291// General format for floating-point operate instructions: 292// - Checks trapping and rounding mode flags. Trapping modes 293// currently unimplemented (will fail). 294// - Generates NOP if FC == 31. 295def format FloatingPointOperate(code, *opt_args) {{ |
296 iop = InstObjParams(name, Name, 'AlphaFP', code, opt_args) |
297 decode_block = FloatingPointDecode.subst(iop) 298 header_output = BasicDeclare.subst(iop) 299 decoder_output = BasicConstructor.subst(iop) 300 exec_output = FloatingPointExecute.subst(iop) 301}}; 302 303// Special format for cvttq where rounding mode is pre-decoded 304def format FPFixedRounding(code, class_suffix, *opt_args) {{ 305 Name += class_suffix |
306 iop = InstObjParams(name, Name, 'AlphaFP', code, opt_args) |
307 decode_block = FloatingPointDecode.subst(iop) 308 header_output = BasicDeclare.subst(iop) 309 decoder_output = BasicConstructor.subst(iop) 310 exec_output = FPFixedRoundingExecute.subst(iop) 311}}; 312 |