OpenCores
URL https://opencores.org/ocsvn/s80186/s80186/trunk

Subversion Repositories s80186

[/] [s80186/] [trunk/] [tests/] [instructions/] [Shift.h] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 jamieiles
// Copyright Jamie Iles, 2017
2
//
3
// This file is part of s80x86.
4
//
5
// s80x86 is free software: you can redistribute it and/or modify
6
// it under the terms of the GNU General Public License as published by
7
// the Free Software Foundation, either version 3 of the License, or
8
// (at your option) any later version.
9
//
10
// s80x86 is distributed in the hope that it will be useful,
11
// but WITHOUT ANY WARRANTY; without even the implied warranty of
12
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
// GNU General Public License for more details.
14
//
15
// You should have received a copy of the GNU General Public License
16
// along with s80x86.  If not, see <http://www.gnu.org/licenses/>.
17
 
18
#pragma once
19
 
20
#include <vector>
21
#include <gtest/gtest.h>
22
#include "EmulateFixture.h"
23
 
24
template <typename T>
25
struct ShiftTest {
26
    int shift_count;
27
    T val;
28
    T expected;
29
    uint16_t flags;
30
    uint16_t expected_flags;
31
};
32
 
33
using Shift8Params = std::pair<const std::vector<uint8_t>,
34
                               const std::vector<struct ShiftTest<uint8_t>>>;
35
using Shift16Params = std::pair<const std::vector<uint8_t>,
36
                                const std::vector<struct ShiftTest<uint16_t>>>;
37
 
38
class ShiftReg8Test : public EmulateFixture,
39
                      public ::testing::WithParamInterface<Shift8Params>
40
{
41
};
42
 
43
class ShiftMem8Test : public EmulateFixture,
44
                      public ::testing::WithParamInterface<Shift8Params>
45
{
46
};
47
 
48
class ShiftRegImm8Test : public EmulateFixture,
49
                         public ::testing::WithParamInterface<Shift8Params>
50
{
51
};
52
 
53
class ShiftMemImm8Test : public EmulateFixture,
54
                         public ::testing::WithParamInterface<Shift8Params>
55
{
56
};
57
 
58
class ShiftReg16Test : public EmulateFixture,
59
                       public ::testing::WithParamInterface<Shift16Params>
60
{
61
};
62
 
63
class ShiftMem16Test : public EmulateFixture,
64
                       public ::testing::WithParamInterface<Shift16Params>
65
{
66
};
67
 
68
class ShiftRegImm16Test : public EmulateFixture,
69
                          public ::testing::WithParamInterface<Shift16Params>
70
{
71
};
72
 
73
class ShiftMemImm16Test : public EmulateFixture,
74
                          public ::testing::WithParamInterface<Shift16Params>
75
{
76
};
77
 
78
struct ShiftCLTestParams {
79
    uint8_t count;
80
    uint8_t expected;
81
    std::vector<uint8_t> instruction;
82
};
83
 
84
class ShiftCLTest : public EmulateFixture,
85
                    public ::testing::WithParamInterface<ShiftCLTestParams>
86
{
87
};

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.