Age | Commit message (Collapse) | Author | Files | Lines |
|
* tc-alpha.c: Patches to track current minimum alignment to reduce
the number of fragments created with frag_align.
(alpha_current_align): New static variable.
(s_alpha_text): Reset alignment to 0.
(s_alpha_data, s_alpha_rdata, s_alpha_sdata): Likewise.
(s_alpha_stringer, s_alpha_space): New functions.
(s_alpha_cons, alpha_flush_pending_output): Remove functions.
(alpha_cons_align): New function to replace both of them.
(emit_insn): Only align if alpha_current_align is less than 2;
reset alpha_current_align to 2.
(s_alpha_gprel32): Likewise.
(s_alpha_section): New function. Basically duplicate the other
alpha section change hooks. Only define for ELF.
(s_alpha_float_cons): Simplify alignment handling.
(md_pseudo_table): Only define "rdata" and "sdata" if OBJ_ECOFF.
If OBJ_ELF, define "section", "section.s", "sect", and "sect.s".
Don't define the s_alpha_cons pseudo-ops. Do define
s_alpha_stringer and s_alpha_space pseudo-ops.
(alpha_align): Skip if less than current default alignment. Set
default alignment.
* tc-alpha.h (md_flush_pending_output): Remove.
(md_cons_align): Add.
* tc-alpha.c: Add oodles of function description comments.
(md_bignum_to_chars): Remove; there are no callers.
(md_show_usage): Mention some more variants.
|
|
(md_do_align): Don't define.
(tc_frob_label): Define.
(alpha_define_label): Declare.
(md_flush_pending_output): Define.
(alpha_flush_pending_output): Declare.
* config/tc-alpha.c (insn_label): New static variable.
(auto_align): New static variable.
(md_pseudo_table): Add cases for .text, .data, .align, .byte,
.hword, .int, .long, .octa, .quad, .short, .word, .double, .float,
and .single. Change .t_floating, .s_floating, .f_floating,
.g_floating, and .d_floating to use s_alpha_float_cons rather than
float_cons.
(s_alpha_text, s_alpha_data): New static functions.
(s_rdata, s_sdata): Clear insn_label and set auto_align.
(s_gprel32): If auto_align, align. Clear insn_label.
(emit_insn): Clear insn_label.
(s_alpha_align): New static function.
(alpha_align): Make static. Take label argument.
(alpha_flush_pending_output): New static function.
(s_alpha_cons, s_alpha_float_cons): New static functions.
(alpha_define_label): New function.
PR 7148.
|
|
out because $CVSROOT was wrong...)
* write.c (write_object_file): If tc_frob_file is defined, call it
just before calling obj_frob_file.
* config/tc-alpha.c (alpha_gp_value): Renamed from gp_value
(references changed), and made non-static.
(getExpression): Return void.
(select_gp_value): Abort if gp_value is non-zero. Delete call to
non-existent bfd_set_gp_value.
(alpha_validate_fix): Function deleted.
(alpha_frob_symbol): Function deleted.
(alpha_local_label): Function deleted.
(alpha_frob_file): Renamed from alpha_end.
* config/tc-alpha.h (alpha_frob_symbol, alpha_validate_fix,
alpha_local_label, alpha_end): Declarations deleted.
(alpha_gp_value, alpha_frob_file): Declare.
(tc_frob_symbol, TC_VALIDATE_FIX, md_end): Macros deleted.
(LOCAL_LABEL): Move code here from tc-alpha.c:alpha_local_label.
(md_convert_frag): Simplified slightly.
(tc_frob_file): New macro.
|
|
Still to do:
- fix floating-point handling
- figure out if we can adapt to using ../opcodes/alpha-opc.h
- gcc bootstrap testing
- 32-bit mode support?
- test cross-assembly
|