- // 64-bit size
- // N.B.: May have to come up with section/fixup markers for this;
- // ATM it's only used in dc.d statements...
- D_long(eval >> 32);
- D_long(eval & 0xFFFFFFFF);
+ if (m6502)
+ return error(in_6502mode);
+
+ if (!defined)
+ {
+ double vv = 0;
+ AddFixup(FU_FLOATDOUB, sloc, exprbuf);
+
+ D_double(vv);
+ }
+ else
+ {
+ double vv;
+ if (tdb)
+ MarkRelocatable(cursect, sloc, tdb, MDOUBLE, NULL);
+
+ vv = *(double *)&eval;
+ D_double(vv);
+ }
+ break;
+ case SIZX:
+ if (m6502)
+ return error(in_6502mode);
+
+ if (!defined)
+ {
+ double vv = 0;
+ AddFixup(FU_FLOATEXT, sloc, exprbuf);
+
+ D_extend(vv);
+ }
+ else
+ {
+ float vv;
+ if (tdb)
+ MarkRelocatable(cursect, sloc, tdb, MEXTEND, NULL);
+
+ vv = *(double *)&eval;
+ D_extend(vv);
+ }