Report a bugIf you spot a problem with this page, click here to create a Bugzilla issue.
Improve this pageQuickly fork, edit online, and submit a pull request for this page.Requires a signed-in GitHub account. This works well for small changes.If you'd like to make larger changes you may want to consider usinga local clone.
dmd.backend.dt
Intermediate representation for static data
nothrow @nogc @trusted void
dt_free(dt_t*
dt);
Free a data definition struct.
nothrow @nogc @safe void
dt_term();
Free free list.
nothrow @nogc @safe void
dtpatchoffset(dt_t*
dt, uint
offset);
nothrow @nogc @safe void
init_common(Symbol*
s);
Make a common block for s.
nothrow @nogc @safe uint
dt_size(const(dt_t)*
dtstart);
Compute size of a dt
nothrow @nogc @safe bool
dtallzeros(const(dt_t)*
dt);
Return true if dt is all zeros.
nothrow @nogc @safe bool
dtpointers(const(dt_t)*
dtstart);
Return true if dt contains pointers (requires relocations).
nothrow @nogc @safe void
dt2common(dt_t**
pdt);
Turn DT.azeros into DTcommon
nothrow @safe void
checkInitialized();
Useful for checking if DtBuilder got initialized.
nothrow @safe void
print();
Print state of DtBuilder for debugging.
nothrow @safe dt_t*
finish();
Finish and return completed data structure.
nothrow @safe void
nbytes(const(char)[]
ptr);
nothrow @trusted void
nbytes(const(ubyte)[]
data);
Append data represented by ptr[0..size]
nothrow @trusted void
abytes(tym_t
ty, uint
offset, const(char)[]
data, uint
nzeros, ubyte
_align);
Write a reference todata withnzeros zero bytes at the end.
Parameters:tym_tty | pointer type |
uintoffset | to be added to offset of data generated |
const(char)[]data | data to write |
uintnzeros | number of zero bytes to add to the end |
ubyte_align | log2() of byte alignment of pointed-to data |
nothrow @trusted void
dword(int
value);
Write 4 bytes of value.
nothrow @trusted void
size(ulong
value);
Write a size_t value.
nothrow @safe void
nzeros(size_t
size);
Write a bunch of zeros
nothrow @trusted void
xoff(Symbol*
s, uint
offset, tym_t
ty);
Write a reference to s+offset
nothrow @safe void
xoff(Symbol*
s, uint
offset);
Create reference to s+offset
nothrow @trusted dt_t*
xoffpatch(Symbol*
s, uint
offset, tym_t
ty);
Like xoff(), but returns handle with which to patch 'offset' value.
nothrow @safe Symbol*
dtoff(dt_t*
dt, uint
offset);
Create a reference to another dt.
Returns:the internal symbol used for the other dt
nothrow @trusted void
coff(uint
offset);
Write reference to offset in code segment.
nothrow @safe void
cat(dt_t*
dt);
Append dt to data.
nothrow @safe void
cat(ref DtBuilder
dtb);
Append dtb to data.
nothrow @trusted void
repeat(dt_t*
dt, size_t
count);
Repeat a list of dt_t's count times.
nothrow @safe uint
length();
Return size of data.
nothrow @safe bool
isZeroLength();
Return true if size of data is 0.
nothrow @nogc @safe dt_t*
dt_get_nzeros(uint
n);
Temporary hack to initialize a dt_t* for C.