On 12 January 2015 at 17:56, Peter Maydell <peter.mayd...@linaro.org> wrote:
> ...but I don't see why that "call 0xf106f" takes
> us to f1064, which the trace says it does

I think the trace is just confusing. Attaching in gdb we see:

=> 0xf1133:     test   %ebp,%ebp
   0xf1135:     jle    0xf1144
   0xf1137:     mov    (%esp),%edx
   0xf113a:     mov    %esi,%eax
   0xf113c:     call   0xf106f

=> 0xf106f:     mov    %eax,%ecx
   0xf1071:     movsbl %dl,%edx
   0xf1074:     call   *(%ecx)

=> 0xf1064:     mov    %edx,%eax
   0xf1066:     mov    0xf68fc,%dx
   0xf106d:     out    %al,(%dx)
   0xf106e:     ret

=> 0xf1076:     ret

=> 0xf1141:     dec    %ebp
   0xf1142:     jmp    0xf1133


So we're just sat in a loop which never finishes. This
seems to be because the first time in to it we set
the loop counter EBP to 0x5b207801.

-- PMM

Reply via email to