diff options
author | bd <bdunahu@operationnull.com> | 2025-03-30 19:42:34 -0400 |
---|---|---|
committer | bd <bdunahu@operationnull.com> | 2025-03-30 19:42:34 -0400 |
commit | ebeb29d1b87c533c1e80e86ceed9ddc40e4d2cb2 (patch) | |
tree | 6fb10621af07438e01391f7cb734023e3aaf691a /inc | |
parent | 36dabe6183af98b2e3f6d0316436dc3affc3d986 (diff) |
Add tests for EX
Diffstat (limited to 'inc')
-rw-r--r-- | inc/id.h | 32 | ||||
-rw-r--r-- | inc/stage.h | 15 |
2 files changed, 26 insertions, 21 deletions
@@ -21,22 +21,6 @@ class ID : public Stage */ /** - * Parse an instruction into a type, opcode, and fields. If the type is - * invalid, only the type field will be set. - * - * This method is marked public so it may be tested, and is not used outside - * of this class during normal execution. - * - * @param the resulting first field, which varies per type. To call this - * function properly, this field must contain the full instruction bytes on - * function entry. - * @param the resulting second field, which varies per type. - * @param the resulting third field, which varies per type. - * @param the resulting mnemonic. - */ - void get_instr_fields( - signed int &s1, signed int &s2, signed int &s3, Mnemonic &m); - /** * Facilitates register checkout and data hazard management. * It does this by checking that the register passed in is not currently * checked out. If true, then replaces r with the value of the register and @@ -66,6 +50,22 @@ class ID : public Stage * @param the resulting second field. * @param the resulting third field. */ + /** + * Parse an instruction into a type, opcode, and fields. If the type is + * invalid, only the type field will be set. + * + * This method is marked public so it may be tested, and is not used outside + * of this class during normal execution. + * + * @param the resulting first field, which varies per type. To call this + * function properly, this field must contain the full instruction bytes on + * function entry. + * @param the resulting second field, which varies per type. + * @param the resulting third field, which varies per type. + * @param the resulting mnemonic. + */ + void get_instr_fields( + signed int &s1, signed int &s2, signed int &s3, Mnemonic &m); void decode_R_type(signed int &s1, signed int &s2, signed int &s3); void decode_I_type(signed int &s1, signed int &s2, signed int &s3); void decode_J_type(signed int &s1, signed int &s2); diff --git a/inc/stage.h b/inc/stage.h index 56a3589..d1b6ee1 100644 --- a/inc/stage.h +++ b/inc/stage.h @@ -40,6 +40,16 @@ class Stage */ virtual InstrDTO *advance(Response p); + /* The following methods are made public so that they may be tested, and are + * not to be called from outside classes during standard execution. + */ + + /** + * Gets the bit in the condition code register correspondng to `c`. + * @param the condition code to retrieve, + */ + bool get_condition(CC c); + protected: /** * The function expected to do the majority of the work. @@ -54,11 +64,6 @@ class Stage */ void set_condition(CC c, bool v); /** - * Gets the bit in the condition code register correspondng to `c`. - * @param the condition code to retrieve, - */ - bool get_condition(CC c); - /** * Helper for `check_out`. * Returns true if r are not checked out, false otherwise. * @param a list of register numbers. |