本文整理汇总了C++中Constant::reference方法的典型用法代码示例。如果您正苦于以下问题:C++ Constant::reference方法的具体用法?C++ Constant::reference怎么用?C++ Constant::reference使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Constant
的用法示例。
在下文中一共展示了Constant::reference方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: emit_data
void SourceAssembler::emit_data(OperandSize size, const Constant& cst,
int dups, const char* name) {
GUARANTEE(!GenerateInlineAsm, "No inline data in inline asm");
if (!GenerateGNUCode) {
if (name != 0) {
emit("\n\tPUBLIC %s%s\n", extern_c_prefix(), name);
}
if (cst.is_reference()) {
emit("\tEXTERNDEF %s%s:PROC\n", extern_c_prefix(), cst.reference());
}
if (name != 0) {
emit("%s%s ", extern_c_prefix(), name);
}
switch (size) {
case byte_operand : emit("\tdb \t"); break;
case word_operand : emit("\tdw \t"); break;
case long_operand : emit("\tdd \t"); break;
case very_long_operand : emit("\tdq \t"); break;
case very_very_long_operand : emit("\tdt \t"); break;
default : SHOULD_NOT_REACH_HERE();
}
if (dups > 1) {
emit("%d\tdup\t(", dups);
emit_constant(cst);
emit(")");
} else {
emit_constant(cst);
}
emit("\n");
} else {
if (name != 0) {
emit("\n\t.global %s%s\n", extern_c_prefix(), name);
}
if (cst.is_reference()) {
emit("\t.extern %s%s\n", extern_c_prefix(), cst.reference());
}
if (name != 0) {
emit("%s%s: ", extern_c_prefix(), name);
}
if (dups > 1) {
emit(".rept %d\n\t", dups);
}
switch (size) {
case byte_operand : emit("\t.byte \t"); break;
case word_operand : emit("\t.word \t"); break;
case long_operand : emit("\t.long \t"); break;
case very_long_operand : emit("\tdq \t"); break;
case very_very_long_operand : emit("\tdt \t"); break;
default : SHOULD_NOT_REACH_HERE();
}
emit_constant_displacement(cst);
if (dups > 1)
emit("\n\t.endr");
emit("\n");
}
}
示例2: jcc
void SourceAssembler::jcc(Condition condition, const Constant& cst) {
if (cst.is_reference()) {
if (!GenerateGNUCode)
if (!GenerateInlineAsm)
emit("\tEXTERNDEF %s%s:PROC\n", extern_c_prefix(), cst.reference());
else
emit("\t{\n\textern void %s();\n", cst.reference());
else
emit("\t.extern %s%s\n", extern_c_prefix(), cst.reference());
}
if (!GenerateInlineAsm)
emit("\tj");
else
emit("\t__asm j");
emit_cc(condition);
emit(" ");
emit_constant(cst);
emit("\n");
if (GenerateInlineAsm && cst.is_reference())
emit("\t}\n");
}