1.3 KiB
Guide to generated label names
Many Millfork constructs generate labels. Knowing what they mean can be useful when reading the generated assembly code.
Every generated label is of form .xx__11111
where 11111 is a sequential number and xx is the type:
-
ah– optimized addition of carry -
an– logical conjunction short-circuiting -
bc– array bounds checking (-fbounds-checking) -
c8– constant#8forBITwhen immediate addressing is not available -
co– greater-than comparison -
cp– equality comparison for larger types -
de– decrement for larger types -
do– beginning of ado-whilestatement -
ds– decimal right shift operation -
el– beginning of the "else" block in anifstatement -
ew– end of awhilestatement -
fi– end of anifstatement -
he– beginning of the body of awhilestatement -
in– increment for larger types -
is– optimized addition of carry using undocumented instructions -
od– end of ado-whilestatement -
or– logical alternative short-circuiting -
sx– sign extension, from a smaller signed type to a larger type -
th– beginning of the "then" block in anifstatement -
wh– beginning of awhilestatement