This data structure is used by the Zig language code generation and therefore must be kept in sync with the compiler implementation.
genericgsfsssglobalconstantparamsharedlocalinputoutputuniformpush_constantstorage_bufferflashflash1flash2flash3flash4flash5cogThis address space only addresses the cog-local ram.
hubThis address space only addresses shared hub ram.
lutThis address space only addresses the "lookup" ram
pub const AddressSpace = enum(u5) {
/// The places where a user can specify an address space attribute
pub const Context = enum {
/// A function is specified to be placed in a certain address space.
function,
/// A (global) variable is specified to be placed in a certain address space.
/// In contrast to .constant, these values (and thus the address space they will be
/// placed in) are required to be mutable.
variable,
/// A (global) constant value is specified to be placed in a certain address space.
/// In contrast to .variable, values placed in this address space are not required to be mutable.
constant,
/// A pointer is ascripted to point into a certain address space.
pointer,
};
// CPU address spaces.
generic,
gs,
fs,
ss,
// GPU address spaces.
global,
constant,
param,
shared,
local,
input,
output,
uniform,
push_constant,
storage_buffer,
// AVR address spaces.
flash,
flash1,
flash2,
flash3,
flash4,
flash5,
// Propeller address spaces.
/// This address space only addresses the cog-local ram.
cog,
/// This address space only addresses shared hub ram.
hub,
/// This address space only addresses the "lookup" ram
lut,
}