stage4/generate_c/types.h
author Andrey Skvortsov <andrej.skvortzov@gmail.com>
Sun, 14 Oct 2018 20:14:13 +0300
changeset 1073 24ef30a9bcee
parent 70 e1f0ebd2d9ec
permissions -rwxr-xr-x
revert commits improved performance of some extensible Standard Functions (ADD, MUL, AND, OR, XOR)

Following commits are reverted:
mjsousa 0b275a2 improve performance of some extensible Standard Functions (ADD, MUL, AND, OR, XOR) -- increase hardcoded limit to 499
mjsousa 2228799 improve performance of some extensible Standard Functions (ADD, MUL, AND, OR, XOR) -- Add comments!!
mjsousa ce81fa6 improve performance of some extensible Standard Functions (ADD, MUL, AND, OR, XOR)"

The reason is that they cause regression in some cases (if function is
used as argument for function block, for example) and this is not
fixed for a long time.
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     1
/*
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     2
 * (c) 2000 Jiri Baum
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     3
 *          Mario de Sousa
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     4
 *
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     5
 * Offered to the public under the terms of the GNU General Public License
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     6
 * as published by the Free Software Foundation; either version 2 of the
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     7
 * License, or (at your option) any later version.
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     8
 *
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful, but
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    10
 * WITHOUT ANY WARRANTY; without even the implied warranty of
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    12
 * Public License for more details.
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    13
 *
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    14
 * This code is made available on the understanding that it will not be
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    15
 * used in safety-critical situations without a full and competent review.
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    16
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    17
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    18
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    19
#ifndef __PLC_TYPES_H
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    20
#define __PLC_TYPES_H
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    21
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    22
#include <limits.h>
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    23
#include <float.h>   /* some limits related to floats are located here (?) */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    24
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    25
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    26
/*
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    27
 * This will need to be conditional on the arquitecture or something.
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    28
 * Anyone know where we can snarf the relevant magic easily?
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    29
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    30
typedef double                 f64; /* 64-bit floating point   */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    31
typedef float                  f32; /* 32-bit floating point   */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    32
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    33
typedef unsigned long long int u64; /* 64-bit unsigned integer */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    34
typedef long long int          i64; /* 64-bit signed integer   */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    35
typedef unsigned int           u32; /* 32-bit unsigned integer */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    36
typedef int                    i32; /* 32-bit signed integer   */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    37
typedef unsigned short int     u16; /* 16-bit unsigned integer */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    38
typedef short int              i16; /* 16-bit signed integer   */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    39
typedef unsigned char          u8;  /*  8-bit unsigned integer */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    40
typedef signed char            i8;  /*  8-bit signed integer   */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    41
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    42
/* some platforms seem to be missing <float.h> with the definition of FLT_MAX */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    43
#ifndef FLT_MAX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    44
  /* this is the minimum value guaranteed by ANSI C++           */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    45
  /* does anybody know the minimum value guaranteed for ANSI C ? */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    46
#define FLT_MAX 1E+37
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    47
#endif
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    48
#ifndef FLT_MIN
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    49
  /* this is the minimum value guaranteed by ANSI C++           */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    50
  /* does anybody know the minimum value guaranteed for ANSI C ? */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    51
#define FLT_MIN 1E-37
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    52
#endif
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    53
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    54
#define f32_MAX FLT_MAX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    55
#define f32_MIN FLT_MIN
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    56
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    57
#define u32_MAX UINT_MAX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    58
#define u32_MIN 0
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    59
#define i32_MAX INT_MAX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    60
#define i32_MIN INT_MIN
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    61
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    62
#define u16_MAX USHRT_MAX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    63
#define u16_MIN 0
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    64
#define i16_MAX SHRT_MAX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    65
#define i16_MIN SHRT_MIN
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    66
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    67
#define u8_MAX UCHAR_MAX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    68
#define u8_MIN 0
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    69
#define i8_MAX SCHAR_MAX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    70
#define i8_MIN SCHAR_MIN
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    71
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    72
#endif /* __PLC_TYPES_H */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    73