- ASM_OUTPUT_LABEL (asm_out_file, label);
- assemble_integer (sym_ref, POINTER_SIZE / BITS_PER_UNIT, 1);
+ decl = build_decl (UNKNOWN_LOCATION, VAR_DECL, id, ptr_type_node);
+ DECL_ARTIFICIAL (decl) = 1;
+ DECL_IGNORED_P (decl) = 1;
+ DECL_INITIAL (decl) = decl;
+
+ if (TREE_PUBLIC (id))
+ {
+ TREE_PUBLIC (decl) = 1;
+ make_decl_one_only (decl, DECL_ASSEMBLER_NAME (decl));
+ }
+ else
+ TREE_STATIC (decl) = 1;
+
+ sym_ref = gen_rtx_SYMBOL_REF (Pmode, sym);
+ sym = targetm.strip_name_encoding (sym);
+ if (TREE_PUBLIC (decl) && USE_LINKONCE_INDIRECT)
+ fprintf (asm_out_file, "\t.hidden %sDW.ref.%s\n", user_label_prefix, sym);
+ assemble_variable (decl, 1, 1, 1);
+ assemble_integer (sym_ref, POINTER_SIZE / BITS_PER_UNIT, POINTER_SIZE, 1);