HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
Typedefs
register_int.hpp File Reference

This file defines types that match the CPU's native register. More...

#include "architecture.hpp"
#include "bigint.hpp"
#include <cstdint>

Go to the source code of this file.

Typedefs

using tt::register_int = int64_t
 
using tt::register_signed_int = int64_t
 A signed integer with the maximum size of a scaler register.
 
using tt::register_unsigned_int = uint64_t
 A unsigned integer with the maximum size of a scaler register.
 
using tt::register_long = __int128_t
 
using tt::register_signed_long = __int128_t
 A signed integer twice the maximum size of a scaler register.
 
using tt::register_unsigned_long = unsigned __int128_t
 A unsigned integer twice the maximum size of a scaler register.
 

Detailed Description

This file defines types that match the CPU's native register.

tt::register_signed_long and tt::register_unsigned_long are double the size of a native register; the double size integers are often the results of a single CPU instruction.

For example the x86-64 instruction MUL can multiply two 64 bit integers together, the result is placed in two 64 bit register. DIV can divide a 128 bit integer in two registers by a 64 bit integer, with a 64 bit integer result.

Typedef Documentation

◆ register_signed_int

A signed integer with the maximum size of a scaler register.

◆ register_signed_long

A signed integer twice the maximum size of a scaler register.

◆ register_unsigned_int

A unsigned integer with the maximum size of a scaler register.

◆ register_unsigned_long

tt::register_unsigned_long = unsigned __int128_t

A unsigned integer twice the maximum size of a scaler register.