+ case SIZS:
+ if (m6502)
+ return error(in_6502mode);
+
+ if (!defined)
+ {
+ float vv = 0;
+ AddFixup(FU_FLOATSING, sloc, exprbuf);
+
+ D_single(vv);
+ }
+ else
+ {
+ if (tdb)
+ MarkRelocatable(cursect, sloc, tdb, MSINGLE, NULL);
+
+ D_single(eval);
+ }
+ break;
+ case SIZD:
+ 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);
+ }
+ break;