Changeset 9539be6 in mainline for boot


Ignore:
Timestamp:
2010-06-22T14:13:55Z (15 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
851f33a
Parents:
402eda5
Message:

autotool now also detects values of UINT_MAX and friends

Location:
boot
Files:
2 edited
1 moved

Legend:

Unmodified
Added
Removed
  • boot/genarch/src/multiplication.c

    r402eda5 r9539be6  
    3333
    3434#include <genarch/multiplication.h>
     35#include <typedefs.h>
    3536
    36 /** Set 1 to return MAX_INT64 or MIN_INT64 on overflow */
     37/** Set 1 to return INT64_MAX or INT64_MIN on overflow */
    3738#ifndef SOFTINT_CHECK_OF
    38         #define SOFTINT_CHECK_OF 0
     39        #define SOFTINT_CHECK_OF  0
    3940#endif
    40 
    41 #define MAX_UINT16  (0xFFFFu)
    42 #define MAX_UINT32  (0xFFFFFFFFu)
    43 #define MAX_INT64   (0x7FFFFFFFFFFFFFFFll)
    44 #define MIN_INT64   (0x8000000000000000ll)
    4541
    4642/** Multiply two integers and return long long as result.
     
    5147static unsigned long long mul(unsigned int a, unsigned int b) {
    5248        unsigned int a1 = a >> 16;
    53         unsigned int a2 = a & MAX_UINT16;
     49        unsigned int a2 = a & UINT16_MAX;
    5450        unsigned int b1 = b >> 16;
    55         unsigned int b2 = b & MAX_UINT16;
     51        unsigned int b2 = b & UINT16_MAX;
    5652       
    5753        unsigned long long t1 = a1 * b1;
     
    8581        unsigned long long b1 = b >> 32;
    8682       
    87         unsigned long long a2 = a & (MAX_UINT32);
    88         unsigned long long b2 = b & (MAX_UINT32);
     83        unsigned long long a2 = a & (UINT32_MAX);
     84        unsigned long long b2 = b & (UINT32_MAX);
    8985       
    9086        if (SOFTINT_CHECK_OF && (a1 != 0) && (b1 != 0)) {
    9187                /* Error (overflow) */
    92                 return (neg ? MIN_INT64 : MAX_INT64);
     88                return (neg ? INT64_MIN : INT64_MAX);
    9389        }
    9490       
     
    9894        unsigned long long t1 = mul(a1, b2) + mul(b1, a2);
    9995       
    100         if ((SOFTINT_CHECK_OF) && (t1 > MAX_UINT32)) {
     96        if ((SOFTINT_CHECK_OF) && (t1 > UINT32_MAX)) {
    10197                /* Error (overflow) */
    102                 return (neg ? MIN_INT64 : MAX_INT64);
     98                return (neg ? INT64_MIN : INT64_MAX);
    10399        }
    104100       
     
    112108        if ((SOFTINT_CHECK_OF) && ((t2 < t1) || (t2 & (1ull << 63)))) {
    113109                /* Error (overflow) */
    114                 return (neg ? MIN_INT64 : MAX_INT64);
     110                return (neg ? INT64_MIN : INT64_MAX);
    115111        }
    116112       
  • boot/generic/include/stdint.h

    r402eda5 r9539be6  
    2727 */
    2828
    29 /** @addtogroup libcia64
    30  * @{
    31  */
    3229/** @file
    3330 */
    3431
    35 #ifndef LIBC_ia64_LIMITS_H_
    36 #define LIBC_ia64_LIMITS_H_
     32#ifndef BOOT_STDINT_H_
     33#define BOOT_STDINT_H_
    3734
    38 #define LONG_MIN MIN_INT64
    39 #define LONG_MAX MAX_INT64
    40 #define ULONG_MIN MIN_UINT64
    41 #define ULONG_MAX MAX_UINT64
     35#define INT8_MIN  (0x80)
     36#define INT8_MAX  (0x7F)
    4237
    43 #define SIZE_MIN MIN_UINT64
    44 #define SIZE_MAX MAX_UINT64
    45 #define SSIZE_MIN MIN_INT64
    46 #define SSIZE_MAX MAX_INT64
     38#define UINT8_MIN  (0u)
     39#define UINT8_MAX  (0xFFu)
     40
     41#define INT16_MIN  (0x8000)
     42#define INT16_MAX  (0x7FFF)
     43
     44#define UINT16_MIN  (0u)
     45#define UINT16_MAX  (0xFFFFu)
     46
     47#define INT32_MIN  (0x80000000l)
     48#define INT32_MAX  (0x7FFFFFFFl)
     49
     50#define UINT32_MIN  (0ul)
     51#define UINT32_MAX  (0xFFFFFFFFul)
     52
     53#define INT64_MIN  (0x8000000000000000ll)
     54#define INT64_MAX  (0x7FFFFFFFFFFFFFFFll)
     55
     56#define UINT64_MIN  (0ull)
     57#define UINT64_MAX  (0xFFFFFFFFFFFFFFFFull)
    4758
    4859#endif
  • boot/generic/include/typedefs.h

    r402eda5 r9539be6  
    3333#define BOOT_TYPEDEFS_H_
    3434
     35#include <stdint.h>
    3536#include <arch/common.h>
    3637#include <arch/types.h>
Note: See TracChangeset for help on using the changeset viewer.