jjc@UUNET.UU.NET (James Clark) (06/15/89)
When I use gas 1.34/sparc to assemble a g++ program, I get many error messages from ld++ saying that i0, i1, i2 and other register names are undefined. If the following file is assembled with gas, nm will list U i0 U i1 U i2 U i3 U i4 U o0 U o1 U o2 When assembled with /bin/as, nm does not list these symbols. James Clark jjc@jclark.uucp gcc_compiled.: .text .align 4 .proc 1 _peek_PSchar_list_iterator: !#PROLOGUE# 0 save %sp,-112,%sp !#PROLOGUE# 1 mov %i0,%o1 ld [%o1],%o0 tst %o0 bne L43 nop b L42 mov -1,%i0 L43: ldsh [%o1+4],%o3 ld [%o1],%o2 ld [%o2+4],%o0 cmp %o3,%o0 bge L45 nop add %o2,%o3,%o0 b L42 ldub [%o0+8],%i0 L45: ld [%o1],%o0 ld [%o0],%o4 st %o4,[%o1] sth %g0,[%o1+4] call _peek_PSchar_list_iterator,0 mov %o1,%o0 mov %o0,%i0 L42: ret restore .align 4 .proc 1 _next_PSchar_list_iterator: !#PROLOGUE# 0 save %sp,-112,%sp !#PROLOGUE# 1 mov %i0,%o2 ld [%o2],%o0 tst %o0 bne L53 nop b L52 mov -1,%i0 L53: ldsh [%o2+4],%o0 ld [%o2],%o3 ld [%o3+4],%o1 cmp %o0,%o1 bge L55 nop add %o2,4,%o0 ldsh [%o0],%o1 ldsh [%o0],%o2 add %o2,1,%o2 sth %o2,[%o0] sll %o1,0x10,%o1 sra %o1,0x10,%o1 add %o3,%o1,%o1 b L52 ldub [%o1+8],%i0 L55: ld [%o2],%o0 ld [%o0],%o4 st %o4,[%o2] sth %g0,[%o2+4] call _next_PSchar_list_iterator,0 mov %o2,%o0 mov %o0,%i0 L52: ret restore .align 4 .proc 1 _is_dummy_PSnode: !#PROLOGUE# 0 save %sp,-112,%sp !#PROLOGUE# 1 mov 0,%i0 ret restore .align 4 .proc 1 _copy_PSline_start_node: !#PROLOGUE# 0 save %sp,-120,%sp !#PROLOGUE# 1 mov %i0,%l0 call _line_start_node_PSline_start_node,0 mov 0,%o0 ld [%o0+4],%o4 st %o4,[%fp-20] mov %o0,%o2 ld [%l0+4],%g1 st %g1,[%o2+4] ld [%l0+0],%g1 st %g1,[%o2+0] ld [%fp-20],%o4 st %o4,[%o0+4] mov %o0,%i0 ret restore LC0: .ascii "<line start>\0" .align 4 .proc 1 _print_PSline_start_node: !#PROLOGUE# 0 save %sp,-112,%sp !#PROLOGUE# 1 sethi %hi(__iob),%o0 or %lo(__iob),%o0,%o0 add %o0,40,%o0 sethi %hi(LC0),%o1 call _fprintf,0 or %o1,%lo(LC0),%o1 ret restore .align 4 .proc 1 _line_start_node_PSline_start_node: !#PROLOGUE# 0 save %sp,-112,%sp !#PROLOGUE# 1 orcc %i0,%g0,%o0 ! 2-insn combine bne L80 nop call ___builtin_new,0 mov 8,%o0 L80: call _node_PSnode_PSnode,0 mov 0,%o1 sethi %hi(__vt$line_start_node),%o2 or %lo(__vt$line_start_node),%o2,%o2 st %o2,[%o0+4] mov %o0,%i0 ret restore .align 4 .global _spline_node_PSspline_node_PDF_SI_DF .proc 1 _spline_node_PSspline_node_PDF_SI_DF: !#PROLOGUE# 0 save %sp,-112,%sp !#PROLOGUE# 1 mov %i0,%l0 mov %i1,%l2 mov %i2,%l1 mov %i3,%l4 mov %i4,%l5 tst %l0 bne L92 nop call ___builtin_new,0 mov 24,%o0 mov %o0,%l0 L92: mov %l0,%o0 call _node_PSnode_PSnode,0 mov 0,%o1 mov %o0,%l0 sethi %hi(__vt$spline_node),%o3 or %lo(__vt$spline_node),%o3,%o3 st %o3,[%l0+4] st %l1,[%l0+20] st %l4,[%l0+8] st %l5,[%l0+12] call ___builtin_new,0 sll %l1,4,%o0 st %o0,[%l0+16] mov %l2,%o1 call _memcpy,0 sll %l1,4,%o2 mov %l0,%i0 ret restore .align 4 .global __$_spline_node .proc 1 __$_spline_node: !#PROLOGUE# 0 save %sp,-112,%sp !#PROLOGUE# 1 orcc %i0,%g0,%l0 ! 3-insn reorder be L95 mov %i1,%l1 call ___builtin_delete,0 ld [%l0+16],%o0 sethi %hi(__vt$node),%o2 or %lo(__vt$node),%o2,%o2 st %o2,[%l0+4] mov %l0,%o0 call __$_node,0 mov %l1,%o1 L95: ret restore .global _dfont$next_dfontno .common _dfont$next_dfontno,8,"bss" .global _font_size$next_size .common _font_size$next_size,8,"bss" .global _font_size$table .common _font_size$table,8192,"bss" .global _symbol$block_size .common _symbol$block_size,8,"bss" .global _symbol$block .common _symbol$block,8,"bss" .global _symbol$table_size .common _symbol$table_size,8,"bss" .global _symbol$table_used .common _symbol$table_used,8,"bss" .global _symbol$table .common _symbol$table,8,"bss" .data .align 8 __vt$spline_node: .half 0 .half 0 .word 0 .half 0 .half 0 .word __$_spline_node .half 0 .half 0 .word _copy_PSspline_node .half 0 .half 0 .word _width_PSspline_node .half 0 .half 0 .word _space_width_PSnode .half 0 .half 0 .word _vertical_width_PSspline_node .half 0 .half 0 .word _prev_char_width_PSnode .half 0 .half 0 .word _character_type_PSnode .half 0 .half 0 .word _set_vertical_size_PSnode_PSvertical_size .half 0 .half 0 .word _print_PSspline_node .half 0 .half 0 .word _is_dummy_PSnode .half 0 .half 0 .word _ends_sentence_PSnode .half 0 .half 0 .word _merge_glyph_node_PSnode_PSglyph_node .half 0 .half 0 .word _add_discretionary_hyphen_PSnode .half 0 .half 0 .word _add_self_PSnode_PSnode_PPShyphen_list .half 0 .half 0 .word _get_hyphen_list_PSnode_PShyphen_list .half 0 .half 0 .word _typeset_PSspline_node_PStypeset_output_file .half 0 .half 0 .word _zero_width_typeset_PSnode_PStypeset_output_file .half 0 .half 0 .word _ascii_print_PSnode_PSascii_output_file .half 0 .half 0 .word _discardable_PSnode .half 0 .half 0 .word _set_space_factor_PSnode_DF .half 0 .half 0 .word _get_breakpoints_PSnode_DF_DF_PSbreakpoint_SI .half 0 .half 0 .word _nbreaks_PSnode .half 0 .half 0 .word _split_PSnode_SI_PPSnode_PPSnode .half 0 .half 0 .word _get_hyphenation_type_PSnode .half 0 .half 0 .word _get_diverted_space_node_PSnode .half 0 .half 0 .word _overlaps_vertically_PSnode .half 0 .half 0 .word _overlaps_horizontally_PSnode .half 0 .half 0 .word _size_PSnode .half 0 .half 0 .word _transparent_char_PSnode .align 8 __vt$space_node: .half 0 .half 0 .word 0 .half 0 .half 0 .word __$_node .half 0 .half 0 .word _copy_PSspace_node .half 0 .half 0 .word _width_PSspace_node .half 0 .half 0 .word _space_width_PSspace_node .half 0 .half 0 .word _vertical_width_PSnode .half 0 .half 0 .word _prev_char_width_PSnode .half 0 .half 0 .word _character_type_PSnode .half 0 .half 0 .word _set_vertical_size_PSnode_PSvertical_size .half 0 .half 0 .word _print_PSspace_node .half 0 .half 0 .word _is_dummy_PSnode .half 0 .half 0 .word _ends_sentence_PSnode .half 0 .half 0 .word _merge_glyph_node_PSnode_PSglyph_node .half 0 .half 0 .word _add_discretionary_hyphen_PSnode .half 0 .half 0 .word _add_self_PSnode_PSnode_PPShyphen_list .half 0 .half 0 .word _get_hyphen_list_PSnode_PShyphen_list .half 0 .half 0 .word _typeset_PSspace_node_PStypeset_output_file .half 0 .half 0 .word _zero_width_typeset_PSnode_PStypeset_output_file .half 0 .half 0 .word _ascii_print_PSspace_node_PSascii_output_file .half 0 .half 0 .word _discardable_PSspace_node .half 0 .half 0 .word _set_space_factor_PSspace_node_DF .half 0 .half 0 .word _get_breakpoints_PSspace_node_DF_DF_PSbreakpoint_SI .half 0 .half 0 .word _nbreaks_PSspace_node .half 0 .half 0 .word _split_PSspace_node_SI_PPSnode_PPSnode .half 0 .half 0 .word _get_hyphenation_type_PSnode .half 0 .half 0 .word _get_diverted_space_node_PSnode .half 0 .half 0 .word _overlaps_vertically_PSnode .half 0 .half 0 .word _overlaps_horizontally_PSnode .half 0 .half 0 .word _size_PSnode .half 0 .half 0 .word _transparent_char_PSnode .align 8 __vt$line_start_node: .half 0 .half 0 .word 0 .half 0 .half 0 .word __$_node .half 0 .half 0 .word _copy_PSline_start_node .half 0 .half 0 .word _width_PSnode .half 0 .half 0 .word _space_width_PSnode .half 0 .half 0 .word _vertical_width_PSnode .half 0 .half 0 .word _prev_char_width_PSnode .half 0 .half 0 .word _character_type_PSnode .half 0 .half 0 .word _set_vertical_size_PSnode_PSvertical_size .half 0 .half 0 .word _print_PSline_start_node .half 0 .half 0 .word _is_dummy_PSnode .half 0 .half 0 .word _ends_sentence_PSnode .half 0 .half 0 .word _merge_glyph_node_PSnode_PSglyph_node .half 0 .half 0 .word _add_discretionary_hyphen_PSnode .half 0 .half 0 .word _add_self_PSnode_PSnode_PPShyphen_list .half 0 .half 0 .word _get_hyphen_list_PSnode_PShyphen_list .half 0 .half 0 .word _typeset_PSnode_PStypeset_output_file .half 0 .half 0 .word _zero_width_typeset_PSnode_PStypeset_output_file .half 0 .half 0 .word _ascii_print_PSnode_PSascii_output_file .half 0 .half 0 .word _discardable_PSnode .half 0 .half 0 .word _set_space_factor_PSnode_DF .half 0 .half 0 .word _get_breakpoints_PSnode_DF_DF_PSbreakpoint_SI .half 0 .half 0 .word _nbreaks_PSnode .half 0 .half 0 .word _split_PSnode_SI_PPSnode_PPSnode .half 0 .half 0 .word _get_hyphenation_type_PSnode .half 0 .half 0 .word _get_diverted_space_node_PSnode .half 0 .half 0 .word _overlaps_vertically_PSnode .half 0 .half 0 .word _overlaps_horizontally_PSnode .half 0 .half 0 .word _size_PSnode .half 0 .half 0 .word _transparent_char_PSnode .align 8 __vt$node: .half 0 .half 0 .word 0 .half 0 .half 0 .word __$_node .half 0 .half 0 .word _abort .half 0 .half 0 .word _width_PSnode .half 0 .half 0 .word _space_width_PSnode .half 0 .half 0 .word _vertical_width_PSnode .half 0 .half 0 .word _prev_char_width_PSnode .half 0 .half 0 .word _character_type_PSnode .half 0 .half 0 .word _set_vertical_size_PSnode_PSvertical_size .half 0 .half 0 .word _print_PSnode .half 0 .half 0 .word _is_dummy_PSnode .half 0 .half 0 .word _ends_sentence_PSnode .half 0 .half 0 .word _merge_glyph_node_PSnode_PSglyph_node .half 0 .half 0 .word _add_discretionary_hyphen_PSnode .half 0 .half 0 .word _add_self_PSnode_PSnode_PPShyphen_list .half 0 .half 0 .word _get_hyphen_list_PSnode_PShyphen_list .half 0 .half 0 .word _typeset_PSnode_PStypeset_output_file .half 0 .half 0 .word _zero_width_typeset_PSnode_PStypeset_output_file .half 0 .half 0 .word _ascii_print_PSnode_PSascii_output_file .half 0 .half 0 .word _discardable_PSnode .half 0 .half 0 .word _set_space_factor_PSnode_DF .half 0 .half 0 .word _get_breakpoints_PSnode_DF_DF_PSbreakpoint_SI .half 0 .half 0 .word _nbreaks_PSnode .half 0 .half 0 .word _split_PSnode_SI_PPSnode_PPSnode .half 0 .half 0 .word _get_hyphenation_type_PSnode .half 0 .half 0 .word _get_diverted_space_node_PSnode .half 0 .half 0 .word _overlaps_vertically_PSnode .half 0 .half 0 .word _overlaps_horizontally_PSnode .half 0 .half 0 .word _size_PSnode .half 0 .half 0 .word _transparent_char_PSnode .global _sys_nerr .common _sys_nerr,8,"bss" .global _errno .common _errno,8,"bss"