* m32c.opc (BRK, GDBBRK): Remove debug logic.

* main.c (main): Add option to set raw console.
* mem.h (m32c_use_raw_console): Declare.
* mem.c (m32c_sim_restore_console): Only restore console if it's
been previously set.
(m32c_use_raw_console): Define.
(mem_get_byte): Set raw console if m32c_use_raw_console is set.
This commit is contained in:
DJ Delorie 2008-06-17 00:34:37 +00:00
parent 2bcebd8052
commit e7ddc19715
5 changed files with 24 additions and 8 deletions

View file

@ -1,3 +1,13 @@
2008-06-16 DJ Delorie <dj@redhat.com>
* m32c.opc (BRK, GDBBRK): Remove debug logic.
* main.c (main): Add option to set raw console.
* mem.h (m32c_use_raw_console): Declare.
* mem.c (m32c_sim_restore_console): Only restore console if it's
been previously set.
(m32c_use_raw_console): Define.
(mem_get_byte): Set raw console if m32c_use_raw_console is set.
2008-06-06 Vladimir Prus <vladimir@codesourcery.com> 2008-06-06 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com> Daniel Jacobowitz <dan@codesourcery.com>
Joseph Myers <joseph@codesourcery.com> Joseph Myers <joseph@codesourcery.com>

View file

@ -680,7 +680,7 @@ next_opcode:
/* We report the break to our caller with the PC still pointing at the /* We report the break to our caller with the PC still pointing at the
breakpoint instruction. */ breakpoint instruction. */
put_reg (pc, m32c_opcode_pc); put_reg (pc, m32c_opcode_pc);
if (verbose || 1) if (verbose)
printf("[break]\n"); printf("[break]\n");
if (in_gdb || (regs.r_intbl == 0 && regs.r_intbh == 0)) if (in_gdb || (regs.r_intbl == 0 && regs.r_intbh == 0))
return M32C_MAKE_HIT_BREAK (); return M32C_MAKE_HIT_BREAK ();
@ -700,7 +700,7 @@ next_opcode:
/* We report the break to our caller with the PC still pointing at the /* We report the break to our caller with the PC still pointing at the
breakpoint instruction. */ breakpoint instruction. */
put_reg (pc, m32c_opcode_pc); put_reg (pc, m32c_opcode_pc);
if (verbose || 1) if (verbose)
printf("[gdb break]\n"); printf("[gdb break]\n");
return M32C_MAKE_HIT_BREAK (); return M32C_MAKE_HIT_BREAK ();

View file

@ -122,7 +122,7 @@ main (int argc, char **argv)
in_gdb = 0; in_gdb = 0;
while ((o = getopt (argc, argv, "tc:vdm:")) != -1) while ((o = getopt (argc, argv, "tc:vdm:C")) != -1)
switch (o) switch (o)
{ {
case 't': case 't':
@ -131,6 +131,9 @@ main (int argc, char **argv)
case 'c': case 'c':
console_port_s = optarg; console_port_s = optarg;
break; break;
case 'C':
m32c_use_raw_console = 1;
break;
case 'v': case 'v':
verbose++; verbose++;
break; break;
@ -151,7 +154,7 @@ main (int argc, char **argv)
break; break;
case '?': case '?':
fprintf (stderr, fprintf (stderr,
"usage: run [-v] [-t] [-d] [-m r8c|m16c|m32cm|m32c]" "usage: run [-v] [-C] [-c port] [-t] [-d] [-m r8c|m16c|m32cm|m32c]"
" program\n"); " program\n");
exit (1); exit (1);
} }

View file

@ -50,6 +50,7 @@ static unsigned char **pt[L1_LEN];
int m32c_console_ifd = 0; int m32c_console_ifd = 0;
int m32c_console_ofd = 1; int m32c_console_ofd = 1;
int m32c_use_raw_console = 0;
#ifdef TIMER_A #ifdef TIMER_A
Timer_A timer_a; Timer_A timer_a;
@ -394,7 +395,8 @@ stdin_ready ()
void void
m32c_sim_restore_console () m32c_sim_restore_console ()
{ {
tcsetattr (m32c_console_ifd, TCSANOW, &oattr); if (console_raw)
tcsetattr (m32c_console_ifd, TCSANOW, &oattr);
console_raw = 0; console_raw = 0;
} }
@ -409,9 +411,9 @@ mem_get_byte (int address)
case 0x2ed: /* m32c uart1c1 */ case 0x2ed: /* m32c uart1c1 */
case 0x3ad: /* m16c uart1c1 */ case 0x3ad: /* m16c uart1c1 */
#if 0 if (!console_raw && m32c_use_raw_console)
if (!console_raw)
{ {
struct termios attr;
tcgetattr (m32c_console_ifd, &attr); tcgetattr (m32c_console_ifd, &attr);
tcgetattr (m32c_console_ifd, &oattr); tcgetattr (m32c_console_ifd, &oattr);
/* We want each key to be sent as the user presses them. */ /* We want each key to be sent as the user presses them. */
@ -420,7 +422,6 @@ mem_get_byte (int address)
console_raw = 1; console_raw = 1;
atexit (m32c_sim_restore_console); atexit (m32c_sim_restore_console);
} }
#endif
if (stdin_ready ()) if (stdin_ready ())
return 0x02; /* tx empty and rx full */ return 0x02; /* tx empty and rx full */

View file

@ -41,3 +41,5 @@ void mem_get_blk (int address, void *bufptr, int nbytes);
int sign_ext (int v, int bits); int sign_ext (int v, int bits);
void m32c_sim_restore_console (); void m32c_sim_restore_console ();
extern int m32c_use_raw_console;