return;
}
+ if (state->syntax & ASM_SYNTAX_MASM) {
+ fprintf (state->ofp, "\n");
+ }
+
if (sec == SECTION_TEXT) {
- if (state->syntax & ASM_SYNTAX_MASM) {
- fprintf (state->ofp, "\n%s\n", ".code");
- } else if (state->syntax & ASM_SYNTAX_NASM) {
+ if (state->syntax & ASM_SYNTAX_NASM) {
fprintf (state->ofp, "section .text\n");
} else {
- fprintf (state->ofp, "%s\n", ".text");
+ fprintf (state->ofp, "%s\n", (state->syntax & ASM_SYNTAX_MASM ? ".code" : ".text"));
}
} else if (sec == SECTION_DATA) {
if (state->syntax & ASM_SYNTAX_MASM) {
fprintf (state->ofp, ".data\n");
- fprintf (state->ofp, "LC%d_flt:\n", lab);
- fprintf (state->ofp, " dd %lu\n", v.low & U32_MASK);
if (size == (DATA_DOUBLE & 0x1f)) {
- fprintf (state->ofp, " dd %lu\n", v.high & U32_MASK);
+
+ if (v.high & U32_MASK) {
+ fprintf (state->ofp, "LC%d_flt dq %lu%lu\n", lab, v.high & U32_MASK, v.low & U32_MASK);
+ } else {
+ fprintf (state->ofp, "LC%d_flt dd %lu\n", lab, v.low & U32_MASK);
+ }
+
+ } else {
+ fprintf (state->ofp, "LC%d_flt dd %lu\n", lab, v.low & U32_MASK);
}
fprintf (state->ofp, ".code\n");
old_size = size;
if (size == (DATA_CHAR & 0x1f)) {
- fprintf (state->ofp, "db %ld", low & 0xFFUL);
+ fprintf (state->ofp, " db %ld", low & 0xFFUL);
} else if (size == (DATA_SHORT & 0x1f)) {
- fprintf (state->ofp, "dw %ld", low & 0xFFFFUL);
+ fprintf (state->ofp, " dw %ld", low & 0xFFFFUL);
} else if (size == (DATA_LLONG & 0x1f) || size == (DATA_DOUBLE & 0x1f)) {
if (high & U32_MASK) {
- fprintf (state->ofp, "dq %lu", high & U32_MASK);
+ fprintf (state->ofp, " dq %lu%lu", high & U32_MASK, low & U32_MASK);
+ } else {
+ fprintf (state->ofp, " dq %lu", low & U32_MASK);
}
-
- fprintf (state->ofp, "dq %lu", low & U32_MASK);
} else {
- fprintf (state->ofp, "dd %lu", low & U32_MASK);
+ fprintf (state->ofp, " dd %lu", low & U32_MASK);
}
} else {
asm_symbol = asm_global_symbol_name (symbol);
if (state->syntax & ASM_SYNTAX_MASM) {
- fprintf (state->ofp, "dd offset %s", asm_symbol);
+ fprintf (state->ofp, " dd offset %s\n", asm_symbol);
} else if (state->syntax & ASM_SYNTAX_NASM) {
fprintf (state->ofp, " dd %s\n", asm_symbol);
} else {
if (state->syntax & ASM_SYNTAX_MASM) {
- if (!is_static) {
+ if (current_section != SECTION_TEXT) {
+ fprintf (state->ofp, "\n");
+ }
- if (current_section != SECTION_TEXT) {
- fprintf (state->ofp, "\n");
- }
-
+ if (!is_static) {
fprintf (state->ofp, "public %s\n", asm_name);
-
}
if (current_section == SECTION_TEXT) {
fprintf (state->ofp, "%s:\n", asm_name);
} else {
- fprintf (state->ofp, "%s ", asm_name);
+ fprintf (state->ofp, "%s", asm_name);
}
} else if (state->syntax & ASM_SYNTAX_NASM) {