fp.isa (6691:cd68b6ecd68d) fp.isa (8588:ef28ed90449d)
1// -*- mode:c++ -*-
2
3// Copyright (c) 2009 The University of Edinburgh
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

--- 70 unchanged lines hidden (view full) ---

79 header_output += header_output_rc1
80 decoder_output += decoder_output_rc1
81 exec_output += exec_output_rc1
82}};
83
84// Floating point elementary arithmetic operations. Besides having two
85// versions of each instruction for when Rc is set or not, we also have
86// to alter lots of special registers depending on the result of the
1// -*- mode:c++ -*-
2
3// Copyright (c) 2009 The University of Edinburgh
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

--- 70 unchanged lines hidden (view full) ---

79 header_output += header_output_rc1
80 decoder_output += decoder_output_rc1
81 exec_output += exec_output_rc1
82}};
83
84// Floating point elementary arithmetic operations. Besides having two
85// versions of each instruction for when Rc is set or not, we also have
86// to alter lots of special registers depending on the result of the
87// operation. The result is always in Ft.sf.
87// operation. The result is always in Ft_sf.
88def format FloatArithOp(code, inst_flags = []) {{
89
90 # Code when Rc is set
91 code_rc1 = code + readFPSCRCode + computeCR1Code
92
93 # Generate the first class
94 (header_output, decoder_output, decode_block, exec_output) = \
95 GenAluOp(name, Name, 'FloatOp', code, inst_flags,

--- 8 unchanged lines hidden (view full) ---

104 header_output += header_output_rc1
105 decoder_output += decoder_output_rc1
106 exec_output += exec_output_rc1
107}};
108
109// Floating point rounding and conversion operations. Besides having two
110// versions of each instruction for when Rc is set or not, we also have
111// to alter lots of special registers depending on the result of the
88def format FloatArithOp(code, inst_flags = []) {{
89
90 # Code when Rc is set
91 code_rc1 = code + readFPSCRCode + computeCR1Code
92
93 # Generate the first class
94 (header_output, decoder_output, decode_block, exec_output) = \
95 GenAluOp(name, Name, 'FloatOp', code, inst_flags,

--- 8 unchanged lines hidden (view full) ---

104 header_output += header_output_rc1
105 decoder_output += decoder_output_rc1
106 exec_output += exec_output_rc1
107}};
108
109// Floating point rounding and conversion operations. Besides having two
110// versions of each instruction for when Rc is set or not, we also have
111// to alter lots of special registers depending on the result of the
112// operation. The result is always in Ft.sf.
112// operation. The result is always in Ft_sf.
113def format FloatConvertOp(code, inst_flags = []) {{
114
115 # Code when Rc is set
116 code_rc1 = code + readFPSCRCode + computeCR1Code
117
118 # Generate the first class
119 (header_output, decoder_output, decode_block, exec_output) = \
120 GenAluOp(name, Name, 'FloatOp', code, inst_flags,

--- 12 unchanged lines hidden ---
113def format FloatConvertOp(code, inst_flags = []) {{
114
115 # Code when Rc is set
116 code_rc1 = code + readFPSCRCode + computeCR1Code
117
118 # Generate the first class
119 (header_output, decoder_output, decode_block, exec_output) = \
120 GenAluOp(name, Name, 'FloatOp', code, inst_flags,

--- 12 unchanged lines hidden ---