version 1.4, 2001/03/22 05:18:31 |
version 1.5, 2002/03/25 16:30:55 |
|
|
printf( "[findcall] %s: 0x%x to 0x%x\n" , |
printf( "[findcall] %s: 0x%x to 0x%x\n" , |
parentp -> name , p_lowpc , p_highpc ); |
parentp -> name , p_lowpc , p_highpc ); |
} |
} |
# endif DEBUG |
# endif /* DEBUG */ |
for ( instructp = textspace + p_lowpc ; |
for ( instructp = textspace + p_lowpc ; |
instructp < textspace + p_highpc ; |
instructp < textspace + p_highpc ; |
instructp += length ) { |
instructp += length ) { |
|
|
if ( debug & CALLDEBUG ) { |
if ( debug & CALLDEBUG ) { |
printf( "[findcall]\t0x%x:calls" , instructp - textspace ); |
printf( "[findcall]\t0x%x:calls" , instructp - textspace ); |
} |
} |
# endif DEBUG |
# endif /* DEBUG */ |
firstmode = operandmode( (struct modebyte *) (instructp+length) ); |
firstmode = operandmode( (struct modebyte *) (instructp+length) ); |
switch ( firstmode ) { |
switch ( firstmode ) { |
case literal: |
case literal: |
|
|
printf( "\tfirst operand is %s", operandname( firstmode ) ); |
printf( "\tfirst operand is %s", operandname( firstmode ) ); |
printf( "\tsecond operand is %s\n" , operandname( mode ) ); |
printf( "\tsecond operand is %s\n" , operandname( mode ) ); |
} |
} |
# endif DEBUG |
# endif /* DEBUG */ |
switch ( mode ) { |
switch ( mode ) { |
case regdef: |
case regdef: |
case bytedispdef: |
case bytedispdef: |
|
|
printf( " childp->value 0x%x\n" , |
printf( " childp->value 0x%x\n" , |
childp -> value ); |
childp -> value ); |
} |
} |
# endif DEBUG |
# endif /* DEBUG */ |
if ( childp -> value == destpc ) { |
if ( childp -> value == destpc ) { |
/* |
/* |
* a hit |
* a hit |
|
|
if ( debug & CALLDEBUG ) { |
if ( debug & CALLDEBUG ) { |
printf( "[findcall]\tbut it's a botch\n" ); |
printf( "[findcall]\tbut it's a botch\n" ); |
} |
} |
# endif DEBUG |
# endif /* DEBUG */ |
length = 1; |
length = 1; |
continue; |
continue; |
} |
} |