Example #1
0
        public IEnumerable <NasmInstruction> WriteExterns()
        {
            yield return(NasmInstruction.Call("global", new LiteralParameter("_start")));

            foreach (var externName in Externs)
            {
                yield return(NasmInstruction.Call("extern", new LiteralParameter(externName)));
            }
        }
Example #2
0
        public IEnumerable <NasmInstruction> WriteConstantTable()
        {
            foreach (var constant in ConstantTable)
            {
                var isString = constant.Key.Type == PrimitiveType.Pointer;

                yield return(NasmInstruction.LabeledCall(
                                 label: constant.Value.LabelName,
                                 name: constant.Value.IsAddress ? "dq" : "equ",
                                 new LiteralParameter(isString ? $"__utf16__(`{constant.Key.ValueText}`)" : constant.Key.ValueText)));
            }
        }