[Bug] Fixed sign and zero extension in Function API (x86)

The problem was that the sign/zero extension was not working with
TypeIds, but it was working with register IDs, when emitted. Thus,
even when TypeId was uint8, for example, the register could be
uint32, so the final instruction emitted was 'movzx eax, eax', for
example, which was wrong.
This commit is contained in:
kobalicek
2024-01-13 14:31:35 +01:00
parent c620b113ad
commit 118ae6ced1
9 changed files with 204 additions and 83 deletions

View File

@@ -52,12 +52,14 @@ public:
std::vector<std::unique_ptr<TestCase>> _tests;
const char* _arch = nullptr;
const char* _filter = nullptr;
bool _helpOnly = false;
bool _verbose = false;
bool _dumpAsm = false;
bool _dumpHex = false;
unsigned _nFailed = 0;
unsigned _numTests = 0;
unsigned _numFailed = 0;
size_t _outputSize = 0;
TestApp() noexcept
@@ -73,6 +75,8 @@ public:
int handleArgs(int argc, const char* const* argv);
void showInfo();
bool shouldRun(const TestCase* tc);
int run();
};