V-Gears 0
Free Final Fantasy VII engine.
FieldMathInstruction.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2022 V-Gears Team
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#pragma once
19
22
27
28 public:
29
38 virtual void ProcessInst(
39 Function& func, ValueStack& stack, Engine* engine, CodeGenerator* code_gen
40 ) override;
41
42 private:
43
44 void ProcessSaturatedPLUS(CodeGenerator* code_gen);
45
47
49
51
52 void ProcessSaturatedINC(CodeGenerator* code_gen);
53
54 void ProcessSaturatedINC2(CodeGenerator* code_gen);
55
56 void ProcessSaturatedDEC(CodeGenerator* code_gen);
57
58 void ProcessSaturatedDEC2(CodeGenerator* code_gen);
59
60 void ProcessRDMSD(CodeGenerator* code_gen);
61
63
88 void ProcessBITON(CodeGenerator* code_gen);
89
114 void ProcessBITOFF(CodeGenerator* code_gen);
115
116 void ProcessPLUSx_MINUSx(CodeGenerator* code_gen, const std::string& op);
117
118 void ProcessINCx_DECx(CodeGenerator* code_gen, const std::string& op);
119
120 void ProcessRANDOM(CodeGenerator* code_gen);
121};
Base class for code generators.
Definition: CodeGenerator.h:58
Base class for engines.
Definition: Engine.h:34
A math instruction.
Definition: FieldMathInstruction.h:26
void ProcessSaturatedDEC(CodeGenerator *code_gen)
Definition: FieldMathInstruction.cpp:185
void ProcessRDMSD(CodeGenerator *code_gen)
Definition: FieldMathInstruction.cpp:207
void ProcessSaturatedMINUS(CodeGenerator *code_gen)
Definition: FieldMathInstruction.cpp:135
virtual void ProcessInst(Function &func, ValueStack &stack, Engine *engine, CodeGenerator *code_gen) override
Processes the instruction.
Definition: FieldMathInstruction.cpp:27
void ProcessINCx_DECx(CodeGenerator *code_gen, const std::string &op)
Definition: FieldMathInstruction.cpp:251
void ProcessSaturatedPLUS2(CodeGenerator *code_gen)
Definition: FieldMathInstruction.cpp:121
void ProcessSaturatedINC(CodeGenerator *code_gen)
Definition: FieldMathInstruction.cpp:163
void ProcessSETBYTE_SETWORD(CodeGenerator *code_gen)
Definition: FieldMathInstruction.cpp:213
void ProcessSaturatedMINUS2(CodeGenerator *code_gen)
Definition: FieldMathInstruction.cpp:149
void ProcessSaturatedINC2(CodeGenerator *code_gen)
Definition: FieldMathInstruction.cpp:174
void ProcessRANDOM(CodeGenerator *code_gen)
Definition: FieldMathInstruction.cpp:261
void ProcessBITOFF(CodeGenerator *code_gen)
Processes a BITON opcode.
Definition: FieldMathInstruction.cpp:232
void ProcessPLUSx_MINUSx(CodeGenerator *code_gen, const std::string &op)
Definition: FieldMathInstruction.cpp:238
void ProcessSaturatedPLUS(CodeGenerator *code_gen)
Definition: FieldMathInstruction.cpp:107
void ProcessBITON(CodeGenerator *code_gen)
Processes a BITON opcode.
Definition: FieldMathInstruction.cpp:226
void ProcessSaturatedDEC2(CodeGenerator *code_gen)
Definition: FieldMathInstruction.cpp:196
Instruction which stores data to memory.
Definition: StoreInstruction.h:23
Structure representing a function.
Definition: Function.h:26