diff options
author | Ben Elliston <bje@au.ibm.com> | 2005-04-29 00:22:29 +0000 |
---|---|---|
committer | Ben Elliston <bje@au.ibm.com> | 2005-04-29 00:22:29 +0000 |
commit | 87c245cccce4a84d53381ea7a8247330608eba7f (patch) | |
tree | 62ebc74603b55c47de9d546280a3264e44e87174 /gas/config/tc-vax.c | |
parent | 3a913e29dfa9128cc6642c0380a753e5cf4aab61 (diff) | |
download | gdb-87c245cccce4a84d53381ea7a8247330608eba7f.zip gdb-87c245cccce4a84d53381ea7a8247330608eba7f.tar.gz gdb-87c245cccce4a84d53381ea7a8247330608eba7f.tar.bz2 |
* Makefile.am (GAS_CFILES): Remove bignum-copy.c.
(GENERIC_OBJS): Likewise, remove bignum-copy.o.
(bignum-copy.o): Remove.
* Makefile.in: Regenerate.
* makefile.vms (OBJS): Remove bignum-copy.obj.
* symbols.h (local_symbol_make): Remove declaration.
(verify_symbol_chain_2): Likewise.
* symbols.c (local_symbol_make): Make static.
(max_indent_level): Likewise.
(verify_symbol_chain_2): Remove.
* macro.c (macro_hash): Make static.
* messages.c (fprint_value): Remove.
* read.h (get_absolute_expr): Remove.
(emit_leb128_expr): Likewise.
(do_s_func): Likewise.
* read.c (do_s_func): Make static.
(emit_leb128_expr): Likewise.
(get_absolute_expr): Likewise.
* as.h (as_howmuch): Remove declaration.
(fprint_value): Likewise.
* as.c (myname): Make static.
* input-scrub.c (as_howmuch): Remove.
(as_1_char): Likewise.
* input-file.h (input_file_is_open): Remove.
* input-file.c (input_file_is_open): Likewise.
* expr.h (expr_build_unary): Remove declaration.
(expr_build_binary): Likewise.
* expr.c (expr_build_unary): Remove.
(expr_build_binary): Likewise.
* hash.h (hash_replace): Remove declaration.
(hash_delete): Likewise.
* hash.c (hash_replace): Remove.
(hash_delete): Likewise.
* bignum-copy.c (bignum_copy): Move from here ..
* config/tc-vax.c (bignum_copy): .. to here.
* bignum.h (LOG_TO_BASE_2_OF_10): Remove.
(bignum_copy): Remove extern declaration.
* sb.h (string_count): Remove extern declaration.
(sb_build, sb_add_buffer, sb_print, sb_print_at): Likewise.
(sb_name): Likewise.
* sb.c (dsize): Replace preprocessor macro with static int.
(string_count): Make static.
(sb_build, sb_add_buffer, sb_print, sb_print_at): Likewise.
(sb_name): Likewise.
* config/obj-coff.c (dim_index): Make static.
* config/tc-i386.c (GOT_symbol): Likewise.
(output_invalid_buf): Likewise.
* doc/internals.texi (Warning and error messages): Remove the
prototype for fprint_value.
Diffstat (limited to 'gas/config/tc-vax.c')
-rw-r--r-- | gas/config/tc-vax.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/gas/config/tc-vax.c b/gas/config/tc-vax.c index fef859e..ac1b94d 100644 --- a/gas/config/tc-vax.c +++ b/gas/config/tc-vax.c @@ -348,6 +348,60 @@ md_chars_to_number (con, nbytes) } return retval; } + +/* + * Copy a bignum from in to out. + * If the output is shorter than the input, copy lower-order + * littlenums. Return 0 or the number of significant littlenums + * dropped. Assumes littlenum arrays are densely packed: no unused + * chars between the littlenums. Uses memcpy() to move littlenums, and + * wants to know length (in chars) of the input bignum. + */ + +static int +bignum_copy (register LITTLENUM_TYPE *in, + register int in_length, /* in sizeof(littlenum)s */ + register LITTLENUM_TYPE *out, + register int out_length /* in sizeof(littlenum)s */) +{ + int significant_littlenums_dropped; + + if (out_length < in_length) + { + LITTLENUM_TYPE *p; /* -> most significant (non-zero) input + littlenum. */ + + memcpy ((void *) out, (void *) in, + (unsigned int) out_length << LITTLENUM_SHIFT); + for (p = in + in_length - 1; p >= in; --p) + { + if (*p) + break; + } + significant_littlenums_dropped = p - in - in_length + 1; + + if (significant_littlenums_dropped < 0) + { + significant_littlenums_dropped = 0; + } + } + else + { + memcpy ((char *) out, (char *) in, + (unsigned int) in_length << LITTLENUM_SHIFT); + + if (out_length > in_length) + { + memset ((char *) (out + in_length), + '\0', + (unsigned int) (out_length - in_length) << LITTLENUM_SHIFT); + } + + significant_littlenums_dropped = 0; + } + + return (significant_littlenums_dropped); +} /* vax:md_assemble() emit frags for 1 instruction */ |