-static unsigned ParseRegisterDecl (Declaration* Decl, unsigned* SC, int Reg)
-/* Parse the declaration of a register variable. The function returns the
- * symbol data, which is the offset of the variable in the register bank.
- */
+static unsigned AllocLabel (void (*UseSeg) ())
+/* Switch to a segment, define a local label and return it */
+{
+ unsigned Label;
+
+ /* Switch to the segment */
+ UseSeg ();
+
+ /* Define the variable label */
+ Label = GetLocalLabel ();
+ g_defdatalabel (Label);
+
+ /* Return the label */
+ return Label;
+}
+
+
+
+static void AllocStorage (unsigned Label, void (*UseSeg) (), unsigned Size)
+/* Reserve Size bytes of BSS storage prefixed by a local label. */
+{
+ /* Switch to the segment */
+ UseSeg ();
+
+ /* Define the variable label */
+ g_defdatalabel (Label);
+
+ /* Reserve space for the data */
+ g_res (Size);
+}
+
+
+
+static void ParseRegisterDecl (Declaration* Decl, int Reg)
+/* Parse the declaration of a register variable. Reg is the offset of the
+** variable in the register bank.
+*/