module Bindef::Extras::Int128

Potentially useful 128-bit integer emission commands.

Public Instance Methods

i128(num) click to toggle source

Emits a `__int128_t`. @note Uses the `:endian` {Bindef#pragma} @param num [Integer] the number to emit @return [void]

# File lib/bindef/extras/int128.rb, line 28
def i128(num)
  upper = num >> 64
  lower = num & (2**64 - 1)

  if pragmas[:endian] == big
    i64 upper
    u64 lower
  else
    u64 lower
    i64 upper
  end
end
u128(num) click to toggle source

Emits a `__uint128_t`. @note Uses the `:endian` {Bindef#pragma} @param num [Integer] the number to emit @return [void]

# File lib/bindef/extras/int128.rb, line 11
def u128(num)
  upper = num >> 64
  lower = num & (2**64 - 1)

  if pragmas[:endian] == big
    u64 upper
    u64 lower
  else
    u64 lower
    u64 upper
  end
end