Skip to content

Instantly share code, notes, and snippets.

@maxymania
Created October 13, 2016 14:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save maxymania/b14c617af5063a21d2b1c7e84d024c74 to your computer and use it in GitHub Desktop.
Save maxymania/b14c617af5063a21d2b1c7e84d024c74 to your computer and use it in GitHub Desktop.
/*
* Copyright (c) 2016 Simon Schmidt
*
* This software is provided 'as-is', without any express or implied
* warranty. Permission is granted to anyone to use this software for
* any purpose, including commercial applications, and to alter it and
* redistribute it freely.
*/
/*
* https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html#Common-Variable-Attributes
* https://gcc.gnu.org/onlinedocs/gccint/Machine-Modes.html
*/
typedef int byte_t __attribute__((mode(__byte__)));
typedef int register_t __attribute__((mode(__word__)));
typedef int intptr_t __attribute__((mode(__pointer__)));
/* Quarter-Integer mode represents a single byte treated as an integer. */
typedef int int8_t __attribute__((mode(__QI__)));
/* Half-Integer mode represents a two-byte integer. */
typedef int int16_t __attribute__((mode(__HI__)));
/* Single Integer mode represents a four-byte integer. */
typedef int int32_t __attribute__((mode(__SI__)));
/* Double Integer mode represents an eight-byte integer. */
typedef int int64_t __attribute__((mode(__DI__)));
/* Non-Standard integers. WARNING: may be uncompileable. */
/* Tetra Integer (?) mode represents a sixteen-byte integer. */
typedef int int_128_t __attribute__((mode(__TI__)));
/* Octa Integer (?) mode represents a thirty-two-byte integer. */
typedef int int_256_t __attribute__((mode(__OI__)));
/* Hexadeca Integer (?) mode represents a sixty-four-byte integer. */
typedef int int_512_t __attribute__((mode(__HI__)));
/* Booleans */
/* mode represents a single bit, for predicate registers. */
typedef unsigned int bool __attribute__((mode(__BI__)));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment