Reduce scope or eliminate temporary variables in jtag_add_statemove:

- Change types of tms_bits and tms_count to unsigned, eliminates a cast.
- Use moves[] only if needed; a single move can use goal_state directly.
- Declare loop induction variable inside its control statement.
- Remove retval in favor of direct returns.


git-svn-id: svn://svn.berlios.de/openocd/trunk@2137 b42882b7-edfa-0310-969c-e2dbd0fdcd60
__archive__
zwelch 2009-06-09 01:16:19 +00:00
parent b3121aac76
commit 731d2d0cb6
1 changed files with 8 additions and 18 deletions

View File

@ -2597,13 +2597,7 @@ static int handle_tms_sequence_command(struct command_context_s *cmd_ctx, char *
*/ */
int jtag_add_statemove(tap_state_t goal_state) int jtag_add_statemove(tap_state_t goal_state)
{ {
int retval = ERROR_OK;
tap_state_t moves[8];
tap_state_t cur_state = cmd_queue_cur_state; tap_state_t cur_state = cmd_queue_cur_state;
int i;
int tms_bits;
int tms_count;
LOG_DEBUG( "cur_state=%s goal_state=%s", LOG_DEBUG( "cur_state=%s goal_state=%s",
tap_state_name(cur_state), tap_state_name(cur_state),
@ -2618,12 +2612,12 @@ int jtag_add_statemove(tap_state_t goal_state)
} }
else if( tap_is_state_stable(cur_state) && tap_is_state_stable(goal_state) ) else if( tap_is_state_stable(cur_state) && tap_is_state_stable(goal_state) )
{ {
tms_bits = tap_get_tms_path(cur_state, goal_state); unsigned tms_bits = tap_get_tms_path(cur_state, goal_state);
tms_count = tap_get_tms_path_len(cur_state, goal_state); unsigned tms_count = tap_get_tms_path_len(cur_state, goal_state);
tap_state_t moves[8];
assert(tms_count < DIM(moves));
assert( (unsigned) tms_count < DIM(moves) ); for (unsigned i = 0; i < tms_count; i++, tms_bits >>= 1)
for (i=0; i<tms_count; i++, tms_bits>>=1)
{ {
bool bit = tms_bits & 1; bool bit = tms_bits & 1;
@ -2636,17 +2630,13 @@ int jtag_add_statemove(tap_state_t goal_state)
else if( tap_state_transition(cur_state, true) == goal_state else if( tap_state_transition(cur_state, true) == goal_state
|| tap_state_transition(cur_state, false) == goal_state ) || tap_state_transition(cur_state, false) == goal_state )
{ {
/* move a single state */ jtag_add_pathmove(1, &goal_state);
moves[0] = goal_state;
jtag_add_pathmove( 1, moves );
} }
else else
{ return ERROR_FAIL;
retval = ERROR_FAIL;
}
return retval; return ERROR_OK;
} }
void jtag_set_nsrst_delay(unsigned delay) void jtag_set_nsrst_delay(unsigned delay)