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

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gdb/] [gdb-6.8/] [sim/] [testsuite/] [common/] [alu-tst.c] - Blame information for rev 26

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 26 jlechner
#define WITH_TARGET_WORD_MSB 0
2
#define WITH_TARGET_WORD_BITSIZE 64
3
#define WITH_HOST_WORD_BITSIZE (sizeof (int) * 8)
4
#define WITH_TARGET_BYTE_ORDER BIG_ENDIAN /* does not matter */
5
 
6
#define ASSERT(EXPRESSION) \
7
{ \
8
  if (!(EXPRESSION)) { \
9
    fprintf (stderr, "%s:%d: assertion failed - %s\n", \
10
             __FILE__, __LINE__, #EXPRESSION); \
11
    abort (); \
12
  } \
13
}
14
 
15
#define SIM_BITS_INLINE (INCLUDE_MODULE | INCLUDED_BY_MODULE)
16
 
17
#include <string.h>
18
 
19
#include "sim-basics.h"
20
 
21
#include "sim-alu.h"
22
 
23
#include <stdio.h>
24
 
25
typedef struct {
26
  char *op;
27
  unsigned64 arg;
28
} alu_op;
29
 
30
typedef struct {
31
  unsigned64 begin;
32
  alu_op ops[4];
33
  unsigned64 result;
34
  int carry_borrow;
35
  int overflow;
36
} alu_test;
37
 
38
#define MAX_INT8 UNSIGNED64 (127)
39
#define MIN_INT8 UNSIGNED64 (128)
40
 
41
#define MAX_INT16 UNSIGNED64 (32767)
42
#define MIN_INT16 UNSIGNED64 (32768)
43
 
44
#define MAX_INT32 UNSIGNED64 (0x7fffffff)
45
#define MIN_INT32 UNSIGNED64 (0x80000000)
46
 
47
#define MAX_INT64 UNSIGNED64 (0x7fffffffffffffff)
48
#define MIN_INT64 UNSIGNED64 (0x8000000000000000)
49
 
50
static void
51
print_hex (unsigned64 val, int nr_bits)
52
{
53
  switch (nr_bits)
54
    {
55
    case 8:
56
      printf ("0x%02lx", (long) (unsigned8) (val));
57
      break;
58
    case 16:
59
      printf ("0x%04lx", (long) (unsigned16) (val));
60
      break;
61
    case 32:
62
      printf ("0x%08lx", (long) (unsigned32) (val));
63
      break;
64
    case 64:
65
      printf ("0x%08lx%08lx",
66
              (long) (unsigned32) (val >> 32),
67
              (long) (unsigned32) (val));
68
      break;
69
    default:
70
      abort ();
71
    }
72
}
73
 
74
 
75
int errors = 0;
76
 
77
 
78
#define N 8
79
#include "alu-n-tst.h"
80
#undef N
81
 
82
#define N 16
83
#include "alu-n-tst.h"
84
#undef N
85
 
86
#define N 32
87
#include "alu-n-tst.h"
88
#undef N
89
 
90
#define N 64
91
#include "alu-n-tst.h"
92
#undef N
93
 
94
 
95
 
96
int
97
main ()
98
{
99
  do_alu_8_tests ();
100
  do_alu_16_tests ();
101
  do_alu_32_tests ();
102
  do_alu_64_tests ();
103
  return (errors != 0);
104
}

powered by: WebSVN 2.1.0

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