diff options
Diffstat (limited to 'gas/config/tc-h8500.c')
-rw-r--r-- | gas/config/tc-h8500.c | 137 |
1 files changed, 55 insertions, 82 deletions
diff --git a/gas/config/tc-h8500.c b/gas/config/tc-h8500.c index 1ce0a17..94301d2 100644 --- a/gas/config/tc-h8500.c +++ b/gas/config/tc-h8500.c @@ -194,7 +194,7 @@ parse_reg (src, mode, reg) /* Cribbed from get_symbol_end(). */ if (!is_name_beginner (*src) || *src == '\001') return 0; - end = src+1; + end = src + 1; while (is_part_of_name (*end) || *end == '\001') end++; len = end - src; @@ -259,8 +259,7 @@ parse_reg (src, mode, reg) return 0; } -static -char * +static char * parse_exp (s, op, page) char *s; expressionS *op; @@ -499,7 +498,7 @@ get_operand (ptr, op, ispage) /* Disp */ src++; - src = skip_colonthing (exp_signed, src, + src = skip_colonthing (exp_signed, src, op, RNIND_D16, RNIND_D8, RNIND_D16, 0); if (*src != ',') @@ -574,8 +573,7 @@ get_operand (ptr, op, ispage) } } -static -char * +static char * get_operands (info, args, operand) h8500_opcode_info *info; char *args; @@ -614,13 +612,11 @@ get_operands (info, args, operand) /* Passed a pointer to a list of opcodes which use different addressing modes, return the opcode which matches the opcodes - provided - */ + provided. */ int pcrel8; /* Set when we've seen a pcrel operand */ -static -h8500_opcode_info * +static h8500_opcode_info * get_specific (opcode, operands) h8500_opcode_info *opcode; h8500_operand_info *operands; @@ -876,8 +872,7 @@ check (operand, low, high) return operand->X_add_number; } -static -void +static void insert (output, index, exp, reloc, pcrel) char *output; int index; @@ -899,8 +894,8 @@ build_relaxable_instruction (opcode, operand) h8500_operand_info *operand; { /* All relaxable instructions start life as two bytes but can become - three bytes long if a lonely branch and up to 9 bytes if long scb - */ + three bytes long if a lonely branch and up to 9 bytes if long + scb. */ char *p; int len; int type; @@ -934,8 +929,8 @@ build_relaxable_instruction (opcode, operand) } } -/* Now we know what sort of opcodes it is, let's build the bytes - - */ +/* Now we know what sort of opcodes it is, let's build the bytes. */ + static void build_bytes (opcode, operand) h8500_opcode_info *opcode; @@ -970,7 +965,6 @@ build_bytes (opcode, operand) break; case RD: case RDIND: - output[index] |= rd; break; case RS: @@ -984,37 +978,32 @@ build_bytes (opcode, operand) case FPIND_D8: insert (output, index, &displacement, R_H8500_IMM8, 0); break; - case IMM16: { int p; - switch (immediate_inpage) { - case 'p': - p = R_H8500_HIGH16; - break; - case 'h': - p = R_H8500_HIGH16; - break; - default: - p = R_H8500_IMM16; - break; - } - - insert (output, index, &immediate,p, 0); + + switch (immediate_inpage) + { + case 'p': + p = R_H8500_HIGH16; + break; + case 'h': + p = R_H8500_HIGH16; + break; + default: + p = R_H8500_IMM16; + break; + } + insert (output, index, &immediate, p, 0); } - index++; break; case RLIST: case IMM8: if (immediate_inpage) - { - insert (output, index, &immediate, R_H8500_HIGH8, 0); - } + insert (output, index, &immediate, R_H8500_HIGH8, 0); else - { - insert (output, index, &immediate, R_H8500_IMM8, 0); - } + insert (output, index, &immediate, R_H8500_IMM8, 0); break; case PCREL16: insert (output, index, &displacement, R_H8500_PCREL16, 1); @@ -1027,19 +1016,12 @@ build_bytes (opcode, operand) output[index] |= check (&immediate, 0, 15); break; case CR: - output[index] |= cr; if (cr == 0) - { - output[0] |= 0x8; - } + output[0] |= 0x8; else - { - output[0] &= ~0x8; - } - + output[0] &= ~0x8; break; - case CRB: output[index] |= crb; output[0] &= ~0x8; @@ -1081,10 +1063,9 @@ build_bytes (opcode, operand) } } -/* This is the guts of the machine-dependent assembler. STR points to a - machine dependent instruction. This function is supposed to emit - the frags/bytes it assembles to. - */ +/* This is the guts of the machine-dependent assembler. STR points to + a machine dependent instruction. This function is supposed to emit + the frags/bytes it assembles to. */ void md_assemble (str) @@ -1099,11 +1080,11 @@ md_assemble (str) int nlen = 0; - /* Drop leading whitespace */ + /* Drop leading whitespace. */ while (*str == ' ') str++; - /* find the op code end */ + /* Find the op code end. */ for (op_start = op_end = str; !is_end_of_line[(unsigned char) *op_end] && *op_end != ' '; op_end++) @@ -1118,9 +1099,7 @@ md_assemble (str) name[nlen] = 0; if (op_end == op_start) - { - as_bad (_("can't find opcode ")); - } + as_bad (_("can't find opcode ")); opcode = (h8500_opcode_info *) hash_find (opcode_hash_control, name); @@ -1147,7 +1126,6 @@ md_assemble (str) } build_bytes (opcode, operand); - } void @@ -1171,8 +1149,8 @@ tc_headers_hook (headers) printf (_("call to tc_headers_hook \n")); } -/* Various routines to kill one day */ -/* Equal to MAX_PRECISION in atof-ieee.c */ +/* Various routines to kill one day. */ +/* Equal to MAX_PRECISION in atof-ieee.c. */ #define MAX_LITTLENUMS 6 /* Turn a string in input_line_pointer into a floating point constant @@ -1239,7 +1217,7 @@ CONST char *md_shortopts = ""; struct option md_longopts[] = { {NULL, no_argument, NULL, 0} }; -size_t md_longopts_size = sizeof(md_longopts); +size_t md_longopts_size = sizeof (md_longopts); int md_parse_option (c, arg) @@ -1262,8 +1240,7 @@ tc_aout_fix_to_chars () abort (); } -static -void +static void wordify_scb (buffer, disp_size, inst_size) char *buffer; int *disp_size; @@ -1328,9 +1305,9 @@ wordify_scb (buffer, disp_size, inst_size) *buffer++ = 0; } -/* -called after relaxing, change the frags so they know how big they are -*/ +/* Called after relaxing, change the frags so they know how big they + are. */ + void md_convert_frag (headers, seg, fragP) object_headers *headers; @@ -1354,9 +1331,9 @@ md_convert_frag (headers, seg, fragP) inst_size = 2; break; - /* Branches to a known 16 bit displacement */ + /* Branches to a known 16 bit displacement. */ - /* Turn on the 16bit bit */ + /* Turn on the 16bit bit. */ case C (BRANCH, WORD_DISP): case C (SCB_F, WORD_DISP): case C (SCB_TST, WORD_DISP): @@ -1366,8 +1343,8 @@ md_convert_frag (headers, seg, fragP) case C (BRANCH, UNDEF_WORD_DISP): case C (SCB_F, UNDEF_WORD_DISP): case C (SCB_TST, UNDEF_WORD_DISP): - /* This tried to be relaxed, but didn't manage it, it now needs a - fix */ + /* This tried to be relaxed, but didn't manage it, it now needs + a fix. */ wordify_scb (buffer, &disp_size, &inst_size); /* Make a reloc */ @@ -1405,7 +1382,7 @@ md_section_align (seg, size) segT seg ; valueT size; { - return ((size + (1 << section_alignment[(int) seg]) - 1) + return ((size + (1 << section_alignment[(int) seg]) - 1) & (-1 << section_alignment[(int) seg])); } @@ -1481,13 +1458,14 @@ md_estimate_size_before_relax (fragP, segment_type) if (S_GET_SEGMENT (fragP->fr_symbol) == segment_type) { /* Got a symbol and it's defined in this segment, become byte - sized - maybe it will fix up */ + sized - maybe it will fix up. */ fragP->fr_subtype = C (what, BYTE_DISP); fragP->fr_var = md_relax_table[C (what, BYTE_DISP)].rlx_length; } else { - /* Its got a segment, but its not ours, so it will always be long */ + /* Its got a segment, but its not ours, so it will always be + long. */ fragP->fr_subtype = C (what, UNDEF_WORD_DISP); fragP->fr_var = md_relax_table[C (what, WORD_DISP)].rlx_length; return md_relax_table[C (what, WORD_DISP)].rlx_length; @@ -1496,7 +1474,7 @@ md_estimate_size_before_relax (fragP, segment_type) return fragP->fr_var; } -/* Put number into target byte order */ +/* Put number into target byte order. */ void md_number_to_chars (ptr, use, nbytes) @@ -1514,7 +1492,6 @@ md_pcrel_from (fixP) return fixP->fx_size + fixP->fx_where + fixP->fx_frag->fr_address; } -/*ARGSUSED*/ void tc_coff_symbol_emit_hook (ignore) symbolS *ignore; @@ -1589,8 +1566,10 @@ tc_reloc_mangle (fix_ptr, intr, base) dot = segment_info[S_GET_SEGMENT (symbol_ptr)].dot; if (dot) { - /* intr->r_offset -= - segment_info[S_GET_SEGMENT(symbol_ptr)].scnhdr.s_paddr;*/ +#if 0 + intr->r_offset -= + segment_info[S_GET_SEGMENT (symbol_ptr)].scnhdr.s_paddr; +#endif intr->r_offset += S_GET_VALUE (symbol_ptr); intr->r_symndx = dot->sy_number; } @@ -1607,8 +1586,6 @@ tc_reloc_mangle (fix_ptr, intr, base) } - - int start_label (ptr) char *ptr; @@ -1622,13 +1599,9 @@ start_label (ptr) return 1; } - int tc_coff_sizemachdep (frag) fragS *frag; { return md_relax_table[frag->fr_subtype].rlx_length; } - -/* end of tc-h8500.c */ - |