diff --git a/bochs/Makefile.in b/bochs/Makefile.in index b057557db..53d045e2e 100644 --- a/bochs/Makefile.in +++ b/bochs/Makefile.in @@ -146,6 +146,7 @@ NONINLINE_OBJS = \ pc_system.o \ osdep.o \ plugin.o \ + crc.o \ @EXTRA_BX_OBJS@ EXTERN_ENVIRONMENT_OBJS = \ @@ -248,7 +249,7 @@ $(BX_OBJS): $(BX_INCLUDES) bxversion.h: $(RM) -f bxversion.h echo '/////////////////////////////////////////////////////////////////////////' > bxversion.h - echo '// $$Id: Makefile.in,v 1.176 2006-01-08 17:16:30 vruppert Exp $$' >> bxversion.h + echo '// $$Id: Makefile.in,v 1.177 2006-01-24 19:03:53 sshwarts Exp $$' >> bxversion.h echo '/////////////////////////////////////////////////////////////////////////' >> bxversion.h echo '// This file is generated by "make bxversion.h"' >> bxversion.h echo "#define VER_STRING \"$(VER_STRING)\"" >> bxversion.h @@ -776,3 +777,4 @@ plugin.o: plugin.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug/debug.h bxversio iodev/pit82c54.h iodev/virt_timer.h iodev/serial.h iodev/sb16.h \ iodev/unmapped.h iodev/ne2k.h iodev/guest2host.h iodev/slowdown_timer.h \ iodev/extfpuirq.h iodev/gameport.h +crc.o: crc.@CPP_SUFFIX@ config.h diff --git a/bochs/bx_debug/Makefile.in b/bochs/bx_debug/Makefile.in index 8dd8fad04..c254479df 100644 --- a/bochs/bx_debug/Makefile.in +++ b/bochs/bx_debug/Makefile.in @@ -58,7 +58,6 @@ BX_OBJS = \ symbols.o \ cosim.o \ linux.o \ - crc.o BX_PARSER_OBJS = \ parser.o \ @@ -120,13 +119,6 @@ lexer.c: lexer.l ########################################### lexer.o: lexer.c debug.h ../config.h ../osdep.h parser.o: parser.c debug.h ../config.h ../osdep.h -crc.o: crc.@CPP_SUFFIX@ ../bochs.h ../config.h ../osdep.h ../bx_debug/debug.h \ - ../bxversion.h ../gui/siminterface.h ../cpu/cpu.h ../cpu/lazy_flags.h \ - ../cpu/hostasm.h ../cpu/icache.h ../cpu/apic.h ../cpu/i387.h \ - ../fpu/softfloat.h ../fpu/tag_w.h ../fpu/status_w.h ../fpu/control_w.h \ - ../cpu/xmm.h ../memory/memory.h ../pc_system.h ../plugin.h \ - ../extplugin.h ../ltdl.h ../gui/gui.h ../gui/textconfig.h \ - ../gui/keymap.h ../instrument/stubs/instrument.h dbg_main.o: dbg_main.@CPP_SUFFIX@ ../bochs.h ../config.h ../osdep.h \ ../bx_debug/debug.h ../bxversion.h ../gui/siminterface.h ../cpu/cpu.h \ ../cpu/lazy_flags.h ../cpu/hostasm.h ../cpu/icache.h ../cpu/apic.h \ diff --git a/bochs/bx_debug/dbg_main.cc b/bochs/bx_debug/dbg_main.cc index 4caacb1c6..25994ea04 100644 --- a/bochs/bx_debug/dbg_main.cc +++ b/bochs/bx_debug/dbg_main.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: dbg_main.cc,v 1.36 2006-01-23 21:44:44 sshwarts Exp $ +// $Id: dbg_main.cc,v 1.37 2006-01-24 19:03:53 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -893,12 +893,12 @@ void bx_dbg_playback_command(char* path_quoted) } } -//toggles vm86 mode switch breakpoint +// toggles vm86 mode switch breakpoint void bx_dbg_modebp_command() { - BX_CPU(dbg_cpu)->debug_vm = BX_CPU(dbg_cpu)->getB_VM (); + BX_CPU(dbg_cpu)->dbg_cpu_mode = BX_CPU(dbg_cpu)->get_cpu_mode(); BX_CPU(dbg_cpu)->mode_break = !BX_CPU(dbg_cpu)->mode_break; - dbg_printf ("mode switch break %s\n", + dbg_printf (" mode switch break %s\n", BX_CPU(dbg_cpu)->mode_break ? "enabled" : "disabled"); } @@ -993,6 +993,8 @@ unsigned int dbg_show_mask = 0; // 0x40 print interrupts // 0x20 print calls +extern const char* cpu_mode_string(unsigned cpu_mode); + //BW added. toggles show symbolic info (calls to begin with) // 0x1 call // 0x2 return @@ -1085,7 +1087,7 @@ void bx_dbg_show_command(char* arg) return; } } else { - dbg_printf (" show mask is 0x%x\n", dbg_show_mask); + dbg_printf ("show mask is 0x%x\n", dbg_show_mask); return; } @@ -1288,6 +1290,7 @@ one_more: // set stop flag if a guard found other than icount or halted unsigned long found = BX_CPU(cpu)->guard_found.guard_found; stop_reason_t reason = (stop_reason_t) BX_CPU(cpu)->stop_reason; + fprintf(stderr, "stop reason %d\n", (unsigned) reason); if (found == BX_DBG_GUARD_ICOUNT) { // I expected this guard, don't stop } else if (found!=0) { @@ -1360,10 +1363,8 @@ void bx_dbg_stepN_command(bx_dbg_icount_t count) bx_guard.guard_for |= BX_DBG_GUARD_ICOUNT; // looking for icount bx_guard.guard_for |= BX_DBG_GUARD_CTRL_C; // or Ctrl-C // for now, step each CPU one BX_DBG_DEFAULT_ICOUNT_QUANTUM at a time - //BX_INFO(("Stepping each CPU a total of %d cycles", count)); for (unsigned cycle=0; cycle < count; cycle++) { for (unsigned cpu=0; cpu < BX_SMP_PROCESSORS; cpu++) { - //BX_INFO(("Stepping %s", BX_CPU(cpu)->name)); bx_guard.icount = 1; bx_guard.interrupt_requested = 0; BX_CPU(cpu)->guard_found.guard_found = 0; @@ -1376,7 +1377,6 @@ void bx_dbg_stepN_command(bx_dbg_icount_t count) BX_TICK1 (); #endif } - //BX_INFO(("Stepped each CPU a total of %d cycles", count)); #endif BX_INSTR_DEBUG_PROMPT(); @@ -1512,8 +1512,8 @@ for (sim=0; simstop_reason == STOP_TIME_BREAK_POINT) { dbg_printf ("(%u) Caught time breakpoint\n", sim); } else if (BX_CPU(sim)->stop_reason == STOP_MODE_BREAK_POINT) { - dbg_printf ("(%u) Caught vm mode switch breakpoint to %s mode\n", - sim, BX_CPU(sim)->get_VM () ? "virtual 86" : "protected"); + dbg_printf ("(%u) Caught mode switch breakpoint switching to '%s'\n", + sim, cpu_mode_string(BX_CPU(sim)->get_cpu_mode())); } else if (BX_CPU(sim)->stop_reason == STOP_READ_WATCH_POINT) { dbg_printf ("(%u) Caught read watch point at %08X\n", sim, BX_CPU(sim)->watchpoint); } else if (BX_CPU(sim)->stop_reason == STOP_WRITE_WATCH_POINT) { @@ -1887,7 +1887,7 @@ void bx_dbg_info_registers_command(int which_regs_mask) BX_CPU(i)->dbg_get_cpu(&cpu); #if BX_SUPPORT_SMP - dbg_printf ("%s:\n", BX_CPU(i)->name, i); + dbg_printf ("%s:\n", BX_CPU(i)->name); #endif reg = cpu.eax; dbg_printf ("eax 0x%-8x\t%d\n", (unsigned) reg, (int) reg); @@ -1897,7 +1897,6 @@ void bx_dbg_info_registers_command(int which_regs_mask) dbg_printf ("edx 0x%-8x\t%d\n", (unsigned) reg, (int) reg); reg = cpu.ebx; dbg_printf ("ebx 0x%-8x\t%d\n", (unsigned) reg, (int) reg); - reg = cpu.esp; dbg_printf ("esp 0x%-8x\t%d\n", (unsigned) reg, (int) reg); reg = cpu.ebp; @@ -1929,18 +1928,15 @@ void bx_dbg_info_registers_command(int which_regs_mask) if (which_regs_mask & BX_INFO_FPU_REGS) { BX_CPU(i)->print_state_FPU (); } +#endif +#if BX_SUPPORT_SSE + if (which_regs_mask & BX_INFO_SSE_REGS) { + BX_CPU(i)->print_state_SSE (); + } #endif } } -void bx_dbg_info_program_command(void) -{ - dbg_printf (" Using the running image of child process -1.\n"); - dbg_printf ("Program stopped at 0x0.\n"); - dbg_printf ("It stopped at breakpoint 0.\n"); -} - - void bx_dbg_dump_cpu_command(void) { bx_dbg_cpu_t cpu; @@ -2703,7 +2699,7 @@ scanf_error: void bx_dbg_disassemble_command(const char *format, bx_num_range range) { bx_bool paddr_valid; - Bit32u paddr/*, Base */; + Bit32u paddr; unsigned ilen; int numlines = INT_MAX; @@ -3154,7 +3150,7 @@ void bx_dbg_info_control_regs_command(void) dbg_printf (" PCE=performance-monitor counter enable=%d\n", (cr4>>8) & 1); dbg_printf (" OXFXSR=OS support for FXSAVE/FXRSTOR=%d\n", (cr4>>9) & 1); dbg_printf (" OSXMMEXCPT=OS support for unmasked SIMD FP exceptions=%d\n", (cr4>>10) & 1); -#endif /* BX_CPU_LEVEL >= 4*/ +#endif /* BX_CPU_LEVEL >= 4 */ #else /* BX_CPU_LEVEL < 2 */ dbg_printf ("CR0-4 register do not exist in cpu level %d", BX_CPU_LEVEL); @@ -3360,8 +3356,7 @@ void bx_dbg_post_dma_reports(void) // need to output the event header dbg_printf ("event icount=%u DMA addr=0x%x size=%u op=%s val=0x%x", (unsigned) bx_dbg_batch_dma.Q[i].icount, - addr, len, (what==BX_READ) ? "read" : "write", - val); + addr, len, (what==BX_READ) ? "read" : "write", val); print_header = 0; } else { @@ -3377,8 +3372,6 @@ void bx_dbg_post_dma_reports(void) bx_dbg_batch_dma.Qsize = 0; } -extern const char* cpu_mode_string(unsigned cpu_mode); - int bx_dbg_symbolic_output(void) { // BW added. return non zero to cause a stop @@ -3669,302 +3662,22 @@ void bx_dbg_info_ivt_command(bx_num_range r) dbg_printf("cpu in protected mode, use info idt\n"); } -void bx_dbg_help_command(char* command) +void bx_dbg_print_help(void) { - char* p; - - if (command == NULL) - { - dbg_printf("help - show list of debugger commands\n"); - dbg_printf("help \'command\'- show short command description\n"); - dbg_printf("-*- Debugger control -*-\n"); - dbg_printf(" help, q|quit|exit, set, instrument, show, trace-on, trace-off,\n"); - dbg_printf(" record, playback, load-symbols, slist\n"); - dbg_printf("-*- Execution control -*-\n"); - dbg_printf(" c|cont, s|step|stepi, p|n|next, modebp\n"); - dbg_printf("-*- Breakpoint management -*-\n"); - dbg_printf(" vb|vbreak, lb|lbreak, pb|pbreak|b|break, sb, sba, blist,\n"); - dbg_printf(" bpe, bpd, d|del|delete\n"); - dbg_printf("-*- CPU and memory contents -*-\n"); - dbg_printf(" x, xp, u|disas|disassemble, r|reg|registers, setpmem, crc, info, dump_cpu,\n"); - dbg_printf(" set_cpu, ptime, print-stack, watch, unwatch, ?|calc\n"); - } - else - { - p = command; - for (; *p != 0 && *p != '\"' && *p != '\''; p++); p++; - for (; *p != 0 && *p != '\"' && *p != '\''; p++); *p = 0; - p = command; - for (; *p != 0 && *p != '\"' && *p != '\''; p++); p++; - - dbg_printf("help %s\n", p); - - if (strcmp(p, "help") == 0) - { - bx_dbg_help_command(NULL); - } - else - if ((strcmp(p, "quit") == 0) || - (strcmp(p, "q") == 0)) - { - dbg_printf("%s - quit debugger and execution\n", p); - } - else - if ((strcmp(p, "c") == 0) || - (strcmp(p, "cont") == 0)) - { - dbg_printf("%s - continue executing\n", p); - } - else - if ((strcmp(p, "stepi") == 0) || - (strcmp(p, "step") == 0) || - (strcmp(p, "s") == 0)) - { - dbg_printf("%s [count] - execute count instructions, default is 1\n", p); - } - else - if ((strcmp(p, "next") == 0) || - (strcmp(p, "n") == 0) || - (strcmp(p, "p") == 0)) - { - dbg_printf("%s - execute instructions, stepping over subroutines\n", p); - } - else - if ((strcmp(p, "vbreak") == 0) || - (strcmp(p, "vb") == 0)) - { - dbg_printf("%s seg:off - set a virtual address instruction breakpoint\n", p); - } - else - if ((strcmp(p, "lbreak") == 0) || - (strcmp(p, "lb") == 0)) - { - dbg_printf("%s addr - set a linear address instruction breakpoint\n", p); - } - else - if ((strcmp(p, "pbreak") == 0) || - (strcmp(p, "break") == 0) || - (strcmp(p, "pb") == 0) || - (strcmp(p, "b") == 0)) - { - dbg_printf("%s [*] addr - set a physical address instruction breakpoint\n", p); - } - else - if ((strcmp(p, "delete") == 0) || - (strcmp(p, "del") == 0) || - (strcmp(p, "d") == 0)) - { - dbg_printf("%s n - delete a breakpoint\n", p); - } - else - if ((strcmp(p, "bpe") == 0)) - { - dbg_printf("%s n - enable a breakpoint\n", p); - } - else - if ((strcmp(p, "bpd") == 0)) - { - dbg_printf("%s n - disable a breakpoint\n", p); - } - else - if ((strcmp(p, "blist") == 0)) - { - dbg_printf("%s - list all breakpoints (same as 'info break')\n", p); - } - else - if (strcmp(p, "xp") == 0) - { - dbg_printf("%s /nuf addr - examine memory at physical address\n", p); - goto nuf_help; - } - else - if (strcmp(p, "x") == 0) - { - dbg_printf("%s /nuf addr - examine memory at linear address\n", p); -nuf_help: - dbg_printf(" nuf is a sequence of numbers (how much values\n"); - dbg_printf(" to display) and one or more of the [mxduotcsibhwg]\n"); - dbg_printf(" format specificators:\n"); - dbg_printf(" x,d,u,o,t,c,s,i select the format of the output (they stand for\n"); - dbg_printf(" hex, decimal, unsigned, octal, binary, char, asciiz, instr)\n"); - dbg_printf(" b,h,w,g select the size of a data element (for byte, half-word,\n"); - dbg_printf(" word and giant word)\n"); - dbg_printf(" m selects an alternative output format (memory dump)\n"); - } - else - if ((strcmp(p, "r") == 0)|| - (strcmp(p, "reg") == 0)|| - (strcmp(p, "registers") == 0)) - { - dbg_printf("%s = expression - set register value to expression\n", p); - } - else - if (strcmp(p, "setpmem") == 0) - { - dbg_printf("%s addr datasize val - set physical memory location of size datasize to value val\n", p); - } - else - if (strcmp(p, "crc") == 0) - { - dbg_printf("%s addr1 addr2 - show CRC for physical memory range addr1..addr2\n", p); - } - else - if (strcmp(p, "info") == 0) - { - dbg_printf("%s break - show information about current breakpoint status\n", p); - dbg_printf("%s dirty - show physical pages dirtied (written to) since last display\n", p); - dbg_printf("%s program - execution status of the program\n", p); - dbg_printf("%s r|reg|regs|registers - list of CPU integer registers and their contents\n", p); - dbg_printf("%s cpu - list of CPU registers and their contents\n", p); - dbg_printf("%s fpu - list of FPU registers and their contents\n", p); - dbg_printf("%s idt - show interrupt descriptor table\n", p); - dbg_printf("%s ivt - show interrupt vector table\n", p); - dbg_printf("%s gdt - show global descriptor table\n", p); - dbg_printf("%s tss - show current task state segment\n", p); - dbg_printf("%s cr - show CR0-4 registers\n", p); - dbg_printf("%s flags - show decoded EFLAGS register\n", p); - dbg_printf("%s symbols [string] - list symbols whose prefix is string\n", p); - dbg_printf("%s pic - show PICs registers\n", p); - dbg_printf("%s ne2000 - show NE2000 registers\n", p); - dbg_printf("%s vga - show vga registers\n", p); - } - else - if (strcmp(p, "set") == 0) - { - dbg_printf("%s $reg = val - change CPU register to value val\n", p); - dbg_printf("%s $disassemble_size = n - tell debugger what segment size [16|32] to use\n", p); - dbg_printf("when \"disassemble\" command is used. Default is 32\n"); - dbg_printf("%s $auto_disassemble = n - cause debugger to disassemble current instruction\n", p); - dbg_printf("every time execution stops if n = 1. Default is 0\n"); - } - else - if (strcmp(p, "dump_cpu") == 0) - { - dbg_printf("%s - dump complete cpu state\n", p); - } - else - if (strcmp(p, "set_cpu") == 0) - { - dbg_printf("%s - set complete cpu state\n", p); - } - else - if ((strcmp(p, "disassemble") == 0) || - (strcmp(p, "disas") == 0) || - (strcmp(p, "u") == 0)) - { - dbg_printf("%s [/count] start end - disassemble instructions for given linear adress\n", p); - dbg_printf(" Optional 'count' is the number of disassembled instructions\n"); - } - else - if (strcmp(p, "instrument") == 0) - { - dbg_printf("%s start - calls bx_instr_start()\n", p); - dbg_printf("%s stop - calls bx_instr_stop()\n", p); - dbg_printf("%s reset - calls bx_instr_reset()\n", p); - dbg_printf("%s print - calls bx_instr_print()\n", p); - } - else - if (strcmp(p, "trace-on") == 0) - { - dbg_printf("%s - disassemble every executed instruction\n", p); - } - else - if (strcmp(p, "trace-off") == 0) - { - dbg_printf("%s - disable tracing\n", p); - } - else - if (strcmp(p, "ptime") == 0) - { - dbg_printf("%s - print current time (number of ticks since start of simulation)\n", p); - } - else - if (strcmp(p, "sb") == 0) - { - dbg_printf("%s delta - insert a time breakpoint delta instruction into the future\n", p); - } - else - if (strcmp(p, "sba") == 0) - { - dbg_printf("%s time - insert a time breakpoint at time\n", p); - } - else - if (strcmp(p, "record") == 0) - { - dbg_printf("%s filename - record console input to file filename\n", p); - } - else - if (strcmp(p, "playback") == 0) - { - dbg_printf("%s filename - playbackconsole input from file filename\n", p); - } - else - if (strcmp(p, "print-stack") == 0) - { - dbg_printf("%s [num_words] - print the num_words top 16 bit words on the stack\n", p); - } - else - if (strcmp(p, "watch") == 0) - { - dbg_printf("%s - print current watch point status\n", p); - dbg_printf("%s stop - stop simulation when a watchpoint is encountred\n", p); - dbg_printf("%s continue - do not stop the simulation when watch point is encountred\n", p); - dbg_printf("%s read addr - insert a read watch point at physical address addr\n", p); - dbg_printf("%s write addr - insert a write watch point at physical address addr\n", p); - } - else - if (strcmp(p, "unwatch") == 0) - { - dbg_printf("%s - remove all watch points\n", p); - dbg_printf("%s read addr - remove a read watch point at physical address addr\n", p); - dbg_printf("%s write addr - remove a write watch point at physical address addr\n", p); - } - else - if (strcmp(p, "load-symbols") == 0) - { - dbg_printf("%s [global] filename [offset] - load symbols from file filename\n", p); - } - else - if ((strcmp(p, "slist") == 0)) - { - dbg_printf("%s [string] - list symbols whose preffix is string (same as 'info symbols')\n", p); - } - else - if (strcmp(p, "modebp") == 0) - { - dbg_printf("%s - toggles vm86 mode switch breakpoint\n", p); - } - else - if (strcmp(p, "show") == 0) - { - dbg_printf("%s [string] - toggles show symbolic info (calls to begin with)\n", p); - dbg_printf("%s - shows current show mode\n", p); - dbg_printf("%s \"mode\" - show, when processor switch mode\n", p); - dbg_printf("%s \"int\" - show, when interrupt is happens\n", p); - dbg_printf("%s \"call\" - show, when call is happens\n", p); - dbg_printf("%s \"ret\" - show, when iret is happens\n", p); - dbg_printf("%s \"off\" - toggles off symbolic info\n", p); - dbg_printf("%s \"dbg-all\" - turn on all show flags\n", p); - dbg_printf("%s \"none\" - turn off all show flags\n", p); - dbg_printf("%s \"tab\" - show page tables\n", p); - } - else - if ((strcmp(p, "calc") == 0) || - (strcmp(p, "?") == 0)) - { - dbg_printf("%s expr - calculate a expression and display the result.\n", p); - dbg_printf(" 'expr' can reference any general-purpose and segment\n"); - dbg_printf(" registers, use any arithmetic and logic operations, and\n"); - dbg_printf(" also the special ':' operator which computes the linear\n"); - dbg_printf(" address for a segment:offset (in real and v86 mode) or\n"); - dbg_printf(" of a selector:offset (in protected mode) pair.\n"); - } - else - { - dbg_printf("%s - unknow command, try help\n", p); - } - } - return; + dbg_printf("help - show list of debugger commands\n"); + dbg_printf("help command - show short command description\n"); + dbg_printf("-*- Debugger control -*-\n"); + dbg_printf(" help, q|quit|exit, set, instrument, show, trace-on, trace-off,\n"); + dbg_printf(" trace-reg-on, trace-reg-off, record, playback,\n"); + dbg_printf(" load-symbols, slist\n"); + dbg_printf("-*- Execution control -*-\n"); + dbg_printf(" c|cont|continue, s|step|stepi, p|n|next, modebp\n"); + dbg_printf("-*- Breakpoint management -*-\n"); + dbg_printf(" vb|vbreak, lb|lbreak, pb|pbreak|b|break, sb, sba, blist,\n"); + dbg_printf(" bpe, bpd, d|del|delete\n"); + dbg_printf("-*- CPU and memory contents -*-\n"); + dbg_printf(" x, xp, u|disasm|disassemble, r|reg|regs|registers, setpmem, crc, info,\n"); + dbg_printf(" dump_cpu, set_cpu, ptime, print-stack, watch, unwatch, ?|calc\n"); } void bx_dbg_calc_command(Bit64u value) diff --git a/bochs/bx_debug/debug.h b/bochs/bx_debug/debug.h index d2ef4cf1b..ecd0e7692 100644 --- a/bochs/bx_debug/debug.h +++ b/bochs/bx_debug/debug.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: debug.h,v 1.8 2006-01-23 21:44:44 sshwarts Exp $ +// $Id: debug.h,v 1.9 2006-01-24 19:03:53 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -47,7 +47,7 @@ void bx_dbg_loader(char *path, bx_loader_misc_t *misc_ptr); extern Bit32u dbg_cpu; -unsigned long crc32(unsigned char *buf, int len); +Bit32u crc32(const Bit8u *buf, int len); #if BX_DEBUGGER @@ -56,6 +56,8 @@ unsigned long crc32(unsigned char *buf, int len); extern "C" { #endif +void dbg_printf (const char *fmt, ...); + typedef enum { rAL, rBL, rCL, rDL, @@ -143,9 +145,9 @@ int bx_dbg_lbreakpoint_symbol_command(char *Symbol); int bx_dbg_pbreakpoint_command(BreakpointKind bk, Bit32u paddress); void bx_dbg_info_bpoints_command(void); void bx_dbg_quit_command(void); -void bx_dbg_info_program_command(void); -#define BX_INFO_CPU_REGS 1 /* choices for bx_dbg_info_registers_command */ +#define BX_INFO_CPU_REGS 1 /* bitmasks - choices for bx_dbg_info_registers_command */ #define BX_INFO_FPU_REGS 2 +#define BX_INFO_SSE_REGS 4 void bx_dbg_info_registers_command(int); void bx_dbg_info_dirty_command(void); void bx_dbg_info_idt_command(bx_num_range); @@ -174,7 +176,7 @@ void bx_dbg_linux_syscall (void); void bx_dbg_info_ne2k(int page, int reg); void bx_dbg_info_pic(void); void bx_dbg_info_vga(void); -void bx_dbg_help_command(char* command); +void bx_dbg_print_help(void); void bx_dbg_calc_command(Bit64u value); void bx_dbg_info_ivt_command(bx_num_range); #ifdef __cplusplus @@ -231,8 +233,6 @@ void bx_dbg_exit(int code); #define bx_dbg_extensions(command) 0 #endif -void dbg_printf (const char *fmt, ...); - // // code for guards... // @@ -434,7 +434,7 @@ typedef struct { #if BX_USE_LOADER void (*loader)(char *path, bx_loader_misc_t *misc_ptr); #endif - bx_bool (*crc32)(unsigned long (*f)(unsigned char *buf, int len), + bx_bool (*crc32)(Bit32u (*f)(const Bit8u *buf, int len), Bit32u addr1, Bit32u addr2, Bit32u *crc); } bx_dbg_callback_t; @@ -464,7 +464,6 @@ void bx_dbg_set_INTR(bx_bool b); void bx_dbg_disassemble_current (int which_cpu, int print_time); int bx_dbg_symbolic_output(void); /* BW */ - char* bx_dbg_symbolic_address(Bit32u context, Bit32u eip, Bit32u base); char* bx_dbg_symbolic_address_16bit(Bit32u eip, Bit32u cs); void bx_dbg_symbol_command(char* filename, bx_bool global, Bit32u offset); diff --git a/bochs/bx_debug/lexer.c b/bochs/bx_debug/lexer.c index cfd524837..d10dab4bb 100644 --- a/bochs/bx_debug/lexer.c +++ b/bochs/bx_debug/lexer.c @@ -19,7 +19,7 @@ /* A lexical scanner generated by flex */ /* Scanner skeleton version: - * $Header: /home/volker/Archiv/bochs-cvs-rsync-20110222/bochs/bx_debug/lexer.c,v 1.6 2006-01-23 21:44:44 sshwarts Exp $ + * $Header: /home/volker/Archiv/bochs-cvs-rsync-20110222/bochs/bx_debug/lexer.c,v 1.7 2006-01-24 19:03:54 sshwarts Exp $ */ #define FLEX_SCANNER @@ -303,60 +303,60 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 169 -#define YY_END_OF_BUFFER 170 -static yyconst short int yy_accept[456] = +#define YY_NUM_RULES 170 +#define YY_END_OF_BUFFER 171 +static yyconst short int yy_accept[457] = { 0, - 0, 0, 0, 0, 0, 0, 170, 167, 1, 165, - 154, 167, 166, 167, 151, 167, 155, 156, 147, 145, - 146, 148, 162, 162, 164, 167, 167, 140, 153, 167, - 21, 7, 46, 167, 167, 167, 167, 167, 167, 167, - 13, 167, 14, 51, 29, 11, 167, 62, 167, 167, - 52, 152, 168, 1, 168, 164, 168, 1, 0, 158, - 0, 166, 163, 0, 157, 0, 160, 162, 161, 0, - 150, 149, 0, 109, 105, 113, 110, 106, 123, 0, - 114, 0, 111, 107, 0, 0, 26, 131, 115, 0, - 112, 122, 108, 0, 0, 134, 0, 116, 0, 0, + 0, 0, 0, 0, 0, 0, 171, 168, 1, 166, + 155, 168, 167, 168, 152, 168, 156, 157, 148, 146, + 147, 149, 163, 163, 165, 168, 168, 141, 154, 168, + 22, 7, 47, 168, 168, 168, 168, 168, 168, 168, + 14, 168, 15, 52, 29, 12, 168, 63, 168, 168, + 53, 153, 169, 1, 169, 165, 169, 1, 0, 159, + 0, 167, 164, 0, 158, 0, 161, 163, 162, 0, + 151, 150, 0, 110, 106, 114, 111, 107, 124, 0, + 115, 0, 112, 108, 0, 0, 26, 132, 116, 0, + 113, 123, 109, 0, 0, 135, 0, 117, 0, 0, - 0, 0, 0, 132, 0, 0, 0, 0, 0, 135, - 0, 0, 136, 0, 0, 0, 125, 0, 0, 18, - 0, 0, 0, 0, 0, 0, 4, 0, 22, 0, - 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, - 121, 0, 124, 133, 0, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 0, 53, 142, 143, 144, 163, - 159, 0, 35, 0, 48, 47, 0, 0, 0, 34, - 6, 0, 45, 0, 0, 3, 58, 0, 0, 117, - 128, 118, 119, 127, 120, 130, 126, 129, 0, 0, - 0, 0, 33, 38, 0, 0, 36, 0, 0, 59, + 0, 0, 0, 0, 133, 0, 0, 0, 0, 0, + 136, 0, 0, 137, 0, 0, 0, 126, 0, 0, + 19, 0, 0, 0, 0, 0, 0, 4, 0, 23, + 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, + 0, 122, 0, 125, 134, 0, 0, 0, 0, 0, + 0, 17, 0, 0, 0, 0, 54, 143, 144, 145, + 164, 160, 0, 36, 0, 49, 48, 0, 0, 0, + 35, 6, 0, 46, 0, 0, 3, 59, 0, 0, + 118, 129, 119, 120, 128, 121, 0, 131, 127, 130, + 0, 0, 0, 0, 33, 39, 0, 0, 37, 0, - 37, 0, 39, 0, 0, 0, 0, 0, 5, 0, - 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, - 0, 0, 30, 0, 78, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 40, 0, 0, 104, 0, - 0, 0, 0, 0, 0, 141, 8, 27, 0, 0, - 0, 0, 71, 0, 50, 0, 0, 0, 0, 139, - 24, 0, 0, 0, 0, 0, 0, 101, 12, 103, - 0, 0, 0, 0, 0, 0, 0, 0, 49, 85, - 0, 0, 31, 0, 0, 0, 88, 0, 0, 10, - 67, 0, 0, 57, 0, 0, 0, 0, 0, 0, + 0, 60, 38, 0, 40, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 0, 61, 0, 0, 0, 0, + 0, 0, 0, 30, 0, 79, 2, 0, 0, 34, + 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, + 105, 0, 0, 0, 0, 0, 0, 142, 8, 27, + 0, 0, 0, 0, 72, 0, 0, 51, 0, 0, + 0, 0, 140, 25, 0, 0, 0, 0, 0, 0, + 102, 13, 104, 0, 0, 0, 0, 0, 0, 0, + 50, 86, 0, 0, 31, 0, 0, 0, 89, 0, + 0, 11, 68, 0, 0, 58, 0, 0, 0, 0, - 0, 15, 20, 0, 28, 0, 0, 41, 63, 0, - 0, 137, 0, 0, 0, 0, 42, 0, 0, 0, - 0, 0, 0, 0, 0, 69, 0, 76, 55, 0, - 0, 68, 0, 0, 91, 66, 9, 0, 0, 0, - 0, 0, 83, 93, 86, 0, 0, 44, 0, 0, - 0, 0, 0, 92, 0, 19, 0, 70, 81, 102, - 23, 0, 0, 0, 0, 0, 79, 0, 0, 0, - 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 56, 99, 0, 0, 25, - 0, 61, 54, 90, 0, 0, 0, 0, 84, 0, + 0, 0, 0, 16, 21, 0, 28, 0, 0, 42, + 0, 0, 0, 0, 138, 0, 0, 0, 0, 43, + 0, 0, 0, 0, 0, 0, 0, 0, 70, 77, + 56, 0, 0, 69, 0, 0, 92, 67, 10, 0, + 0, 0, 0, 0, 84, 94, 87, 0, 0, 45, + 0, 64, 0, 0, 0, 0, 93, 0, 20, 0, + 71, 82, 103, 24, 0, 0, 0, 0, 80, 0, + 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 57, 100, 0, + 0, 0, 62, 55, 91, 0, 0, 0, 0, 85, - 87, 0, 0, 43, 0, 0, 0, 0, 80, 0, - 0, 97, 0, 0, 72, 0, 100, 0, 0, 0, - 0, 0, 0, 0, 0, 32, 0, 73, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 0, 0, 95, - 64, 0, 138, 0, 82, 0, 96, 0, 98, 89, - 94, 0, 74, 75, 0 + 0, 9, 0, 0, 44, 0, 0, 0, 0, 81, + 0, 0, 98, 0, 0, 73, 0, 101, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 0, 74, 0, + 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, + 96, 65, 0, 139, 0, 83, 0, 97, 0, 99, + 90, 95, 0, 75, 76, 0 } ; static yyconst int yy_ec[256] = @@ -401,117 +401,117 @@ static yyconst int yy_meta[55] = 7, 7, 5, 1 } ; -static yyconst short int yy_base[464] = +static yyconst short int yy_base[465] = { 0, - 0, 0, 53, 55, 57, 59, 542, 543, 539, 543, - 543, 58, 0, 0, 543, 55, 543, 543, 543, 543, - 543, 543, 70, 74, 543, 519, 517, 543, 543, 43, - 57, 68, 89, 112, 109, 66, 504, 121, 135, 494, - 502, 36, 145, 486, 500, 163, 72, 491, 85, 87, - 488, 543, 543, 529, 170, 543, 196, 528, 120, 543, - 0, 0, 0, 57, 543, 0, 201, 205, 543, 0, - 543, 543, 496, 543, 488, 543, 543, 489, 101, 492, - 543, 485, 543, 543, 482, 474, 33, 543, 543, 482, - 543, 111, 543, 491, 482, 543, 478, 543, 466, 96, + 0, 0, 53, 55, 57, 59, 544, 545, 541, 545, + 545, 58, 0, 0, 545, 55, 545, 545, 545, 545, + 545, 545, 70, 74, 545, 521, 519, 545, 545, 43, + 57, 68, 89, 112, 109, 66, 506, 121, 135, 496, + 504, 36, 145, 488, 502, 163, 72, 493, 85, 87, + 490, 545, 545, 531, 170, 545, 196, 530, 130, 545, + 0, 0, 0, 57, 545, 0, 201, 205, 545, 0, + 545, 545, 498, 545, 490, 545, 545, 491, 127, 494, + 545, 487, 545, 545, 484, 476, 33, 545, 545, 484, + 545, 123, 545, 493, 484, 545, 480, 545, 468, 96, - 465, 99, 472, 66, 477, 467, 483, 466, 462, 543, - 462, 466, 543, 468, 459, 34, 543, 461, 457, 458, - 455, 460, 471, 467, 110, 464, 543, 462, 451, 454, - 442, 462, 463, 117, 454, 136, 196, 461, 442, 446, - 543, 450, 543, 543, 147, 154, 448, 456, 438, 433, - 437, 452, 433, 446, 441, 543, 217, 221, 228, 0, - 0, 432, 543, 430, 543, 543, 446, 443, 426, 543, - 543, 437, 438, 436, 422, 439, 543, 420, 423, 543, - 543, 543, 543, 543, 543, 543, 543, 543, 418, 417, - 428, 431, 543, 543, 431, 417, 543, 417, 411, 543, + 467, 99, 478, 473, 66, 478, 468, 484, 467, 463, + 545, 463, 467, 545, 469, 460, 34, 545, 462, 458, + 459, 456, 461, 472, 468, 110, 465, 545, 463, 452, + 455, 443, 463, 464, 455, 454, 143, 196, 461, 442, + 446, 545, 450, 545, 453, 162, 157, 447, 455, 437, + 432, 436, 451, 432, 445, 440, 545, 217, 221, 228, + 0, 0, 431, 545, 429, 545, 545, 445, 442, 425, + 545, 545, 436, 437, 435, 421, 438, 545, 419, 422, + 545, 545, 545, 545, 545, 545, 435, 545, 545, 545, + 416, 415, 426, 429, 545, 545, 429, 415, 545, 415, - 543, 424, 543, 408, 423, 421, 145, 406, 543, 419, - 418, 418, 432, 543, 396, 406, 411, 405, 399, 396, - 410, 399, 161, 407, 543, 212, 389, 392, 392, 393, - 392, 404, 402, 399, 400, 543, 401, 396, 543, 397, - 382, 379, 412, 377, 385, 543, 385, 375, 373, 406, - 366, 371, 543, 388, 543, 402, 368, 380, 383, 543, - 543, 366, 381, 358, 158, 378, 392, 543, 543, 543, - 377, 368, 365, 373, 355, 356, 367, 347, 543, 543, - 353, 351, 543, 349, 364, 354, 543, 346, 345, 354, - 543, 348, 376, 543, 355, 340, 357, 349, 351, 350, + 409, 545, 545, 422, 545, 406, 421, 419, 156, 404, + 545, 417, 416, 416, 430, 545, 394, 404, 404, 398, + 395, 409, 398, 87, 406, 545, 102, 388, 391, 545, + 391, 392, 391, 403, 401, 398, 399, 545, 400, 395, + 545, 396, 381, 378, 411, 376, 384, 545, 384, 374, + 372, 405, 365, 370, 545, 387, 379, 545, 400, 366, + 378, 381, 545, 545, 364, 379, 356, 170, 376, 390, + 545, 545, 545, 375, 366, 363, 371, 353, 366, 346, + 545, 545, 352, 350, 545, 348, 363, 353, 545, 345, + 344, 353, 545, 347, 375, 545, 354, 339, 356, 348, - 345, 543, 543, 340, 543, 347, 339, 543, 332, 346, - 342, 543, 362, 335, 325, 334, 543, 325, 325, 326, - 353, 329, 325, 323, 335, 350, 333, 543, 543, 329, - 313, 543, 316, 325, 543, 543, 543, 318, 210, 343, - 324, 316, 543, 543, 543, 312, 304, 543, 318, 317, - 306, 306, 316, 543, 306, 543, 293, 543, 543, 543, - 543, 309, 308, 311, 295, 300, 543, 306, 290, 297, - 290, 292, 301, 159, 297, 543, 298, 298, 290, 289, - 280, 282, 290, 292, 284, 543, 543, 285, 275, 543, - 276, 543, 543, 543, 272, 279, 213, 285, 543, 275, + 350, 349, 344, 545, 545, 339, 545, 346, 338, 545, + 133, 346, 330, 341, 545, 361, 334, 324, 333, 545, + 324, 324, 325, 352, 328, 324, 322, 334, 349, 545, + 545, 329, 313, 545, 316, 325, 545, 545, 545, 318, + 209, 343, 324, 316, 545, 545, 545, 312, 304, 545, + 318, 545, 317, 306, 306, 316, 545, 306, 545, 293, + 545, 545, 545, 545, 309, 308, 311, 295, 545, 307, + 291, 298, 291, 293, 302, 163, 298, 545, 299, 299, + 291, 290, 281, 283, 291, 293, 285, 545, 545, 286, + 276, 277, 545, 545, 545, 273, 280, 207, 286, 545, - 543, 274, 285, 543, 264, 280, 271, 281, 543, 179, - 264, 543, 267, 274, 543, 272, 543, 261, 266, 275, - 272, 254, 249, 259, 246, 543, 227, 543, 252, 201, - 219, 206, 210, 543, 190, 190, 164, 151, 155, 543, - 543, 147, 543, 122, 543, 95, 543, 215, 543, 543, - 543, 72, 543, 543, 543, 257, 264, 271, 275, 282, - 287, 292, 297 + 276, 545, 275, 286, 545, 265, 281, 272, 282, 545, + 218, 265, 545, 268, 274, 545, 263, 545, 252, 251, + 250, 241, 215, 219, 229, 222, 545, 213, 545, 243, + 203, 221, 208, 214, 545, 212, 191, 187, 172, 165, + 545, 545, 169, 545, 143, 545, 119, 545, 216, 545, + 545, 545, 72, 545, 545, 545, 264, 271, 278, 282, + 289, 294, 299, 304 } ; -static yyconst short int yy_def[464] = +static yyconst short int yy_def[465] = { 0, - 455, 1, 456, 456, 456, 456, 455, 455, 455, 455, - 455, 457, 458, 459, 455, 460, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 461, 455, 455, 455, 457, 455, - 457, 458, 462, 460, 455, 460, 455, 455, 455, 463, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 456, 1, 457, 457, 457, 457, 456, 456, 456, 456, + 456, 458, 459, 460, 456, 461, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 462, 456, 456, 456, 458, 456, + 458, 459, 463, 461, 456, 461, 456, 456, 456, 464, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 461, 461, 455, 462, - 463, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 462, 462, 456, + 463, 464, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 0, 455, 455, 455, 455, 455, - 455, 455, 455 + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 0, 456, 456, 456, 456, + 456, 456, 456, 456 } ; -static yyconst short int yy_nxt[598] = +static yyconst short int yy_nxt[600] = { 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 24, 24, 25, @@ -519,69 +519,69 @@ static yyconst short int yy_nxt[598] = 31, 32, 33, 34, 35, 36, 37, 38, 8, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 8, 52, 54, 10, 54, 10, 54, 10, - 54, 10, 60, 65, 171, 65, 172, 55, 198, 55, - 126, 57, 56, 57, 56, 73, 56, 127, 56, 74, - 199, 66, 75, 66, 61, 67, 67, 67, 68, 68, - 68, 68, 68, 77, 76, 69, 78, 82, 111, 69, + 54, 10, 60, 65, 172, 65, 173, 55, 200, 55, + 127, 57, 56, 57, 56, 73, 56, 128, 56, 74, + 201, 66, 75, 66, 61, 67, 67, 67, 68, 68, + 68, 68, 68, 77, 76, 69, 78, 82, 112, 69, - 79, 147, 80, 187, 83, 112, 454, 84, 81, 188, - 85, 86, 113, 87, 88, 151, 153, 148, 149, 89, - 152, 70, 90, 154, 60, 91, 92, 207, 93, 94, - 451, 95, 155, 165, 166, 96, 184, 97, 106, 181, - 98, 99, 100, 101, 102, 174, 61, 182, 107, 103, - 185, 108, 109, 115, 216, 110, 175, 176, 104, 217, - 267, 208, 116, 105, 117, 120, 118, 121, 450, 219, - 119, 318, 122, 220, 128, 129, 229, 123, 130, 449, - 230, 131, 132, 268, 133, 157, 157, 157, 157, 231, - 134, 319, 135, 138, 232, 233, 139, 448, 282, 140, + 79, 148, 80, 189, 83, 113, 455, 84, 81, 190, + 85, 86, 114, 87, 88, 152, 154, 149, 150, 89, + 153, 70, 90, 155, 284, 91, 92, 209, 93, 94, + 287, 95, 156, 285, 60, 96, 185, 97, 107, 182, + 98, 99, 100, 101, 102, 288, 103, 183, 108, 104, + 186, 109, 110, 116, 452, 111, 61, 175, 105, 166, + 167, 210, 117, 106, 118, 121, 119, 122, 176, 177, + 120, 270, 123, 352, 129, 130, 220, 124, 131, 353, + 221, 132, 133, 321, 134, 158, 158, 158, 158, 451, + 135, 231, 136, 139, 271, 232, 140, 234, 235, 141, - 141, 397, 142, 447, 398, 446, 143, 283, 424, 144, - 145, 159, 159, 159, 159, 146, 67, 67, 67, 68, - 68, 68, 68, 68, 425, 221, 69, 222, 445, 444, - 69, 223, 157, 157, 157, 157, 455, 455, 455, 455, - 285, 372, 224, 159, 159, 159, 159, 414, 443, 452, - 373, 442, 441, 440, 415, 286, 453, 53, 53, 53, - 53, 53, 53, 53, 59, 439, 59, 59, 59, 59, - 59, 62, 438, 62, 62, 62, 62, 62, 63, 63, - 63, 63, 64, 437, 64, 64, 64, 64, 64, 158, - 436, 435, 158, 158, 160, 160, 160, 160, 160, 161, + 142, 450, 143, 322, 233, 398, 144, 449, 399, 145, + 146, 160, 160, 160, 160, 147, 67, 67, 67, 68, + 68, 68, 68, 68, 448, 222, 69, 223, 447, 446, + 69, 224, 158, 158, 158, 158, 456, 456, 456, 456, + 374, 415, 225, 160, 160, 160, 160, 425, 416, 375, + 453, 445, 444, 443, 442, 441, 440, 454, 439, 438, + 437, 436, 435, 426, 53, 53, 53, 53, 53, 53, + 53, 59, 434, 59, 59, 59, 59, 59, 62, 433, + 62, 62, 62, 62, 62, 63, 63, 63, 63, 64, + 432, 64, 64, 64, 64, 64, 159, 431, 430, 159, - 161, 434, 161, 433, 432, 431, 430, 429, 428, 427, - 426, 423, 422, 421, 420, 419, 418, 417, 416, 413, - 412, 411, 410, 409, 408, 407, 406, 405, 404, 403, - 402, 401, 400, 399, 396, 395, 394, 393, 392, 391, - 390, 389, 388, 387, 386, 385, 384, 383, 382, 381, - 380, 379, 378, 377, 376, 375, 374, 371, 370, 369, - 368, 367, 366, 365, 364, 363, 362, 361, 360, 359, - 358, 357, 356, 355, 354, 353, 352, 351, 350, 349, - 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, - 338, 337, 336, 335, 334, 333, 332, 331, 330, 329, + 159, 161, 161, 161, 161, 161, 162, 162, 429, 162, + 428, 427, 424, 423, 422, 421, 420, 419, 418, 417, + 414, 413, 412, 411, 410, 409, 408, 407, 406, 405, + 404, 403, 402, 401, 400, 397, 396, 395, 394, 393, + 392, 391, 390, 389, 388, 387, 386, 385, 384, 383, + 382, 381, 380, 379, 378, 377, 376, 373, 372, 371, + 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, + 360, 359, 358, 357, 356, 355, 315, 354, 351, 350, + 349, 348, 347, 346, 345, 344, 343, 342, 341, 340, + 339, 338, 337, 336, 335, 334, 333, 332, 331, 330, - 328, 327, 326, 325, 324, 323, 322, 321, 320, 317, - 316, 315, 314, 313, 312, 311, 310, 309, 308, 307, - 306, 305, 304, 303, 302, 301, 300, 299, 298, 297, - 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, - 284, 281, 280, 279, 278, 277, 276, 275, 274, 273, - 272, 271, 270, 269, 266, 265, 264, 263, 262, 261, - 260, 259, 258, 257, 256, 255, 254, 253, 252, 251, - 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, - 240, 239, 238, 237, 236, 235, 234, 228, 227, 226, - 225, 218, 215, 214, 213, 212, 211, 210, 209, 206, + 329, 328, 327, 326, 325, 324, 323, 320, 319, 318, + 317, 316, 315, 314, 313, 312, 311, 310, 309, 308, + 307, 306, 305, 304, 303, 302, 301, 300, 299, 298, + 297, 296, 295, 294, 293, 292, 291, 290, 289, 286, + 283, 282, 281, 280, 279, 278, 277, 276, 275, 274, + 273, 272, 269, 268, 267, 266, 265, 264, 263, 262, + 261, 260, 259, 258, 257, 256, 255, 254, 253, 252, + 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, + 241, 240, 239, 238, 237, 236, 230, 229, 228, 227, + 226, 219, 218, 217, 216, 215, 214, 213, 212, 211, - 205, 204, 203, 202, 201, 200, 197, 196, 195, 194, - 193, 192, 191, 190, 189, 186, 183, 180, 179, 178, - 177, 173, 170, 169, 168, 167, 164, 163, 162, 58, - 58, 156, 150, 137, 136, 125, 124, 114, 72, 71, - 58, 455, 7, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455 + 208, 207, 206, 205, 204, 203, 202, 199, 198, 197, + 196, 195, 194, 193, 192, 191, 188, 187, 184, 181, + 180, 179, 178, 174, 171, 170, 169, 168, 165, 164, + 163, 58, 58, 157, 151, 138, 137, 126, 125, 115, + 72, 71, 58, 456, 7, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456 } ; -static yyconst short int yy_chk[598] = +static yyconst short int yy_chk[600] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -589,65 +589,65 @@ static yyconst short int yy_chk[598] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 4, 4, 5, 5, - 6, 6, 12, 16, 87, 64, 87, 3, 116, 4, + 6, 6, 12, 16, 87, 64, 87, 3, 117, 4, 42, 5, 3, 6, 4, 30, 5, 42, 6, 30, - 116, 16, 30, 64, 12, 23, 23, 23, 23, 24, + 117, 16, 30, 64, 12, 23, 23, 23, 23, 24, 24, 24, 24, 31, 30, 23, 31, 32, 36, 24, - 31, 47, 31, 104, 32, 36, 452, 32, 31, 104, + 31, 47, 31, 105, 32, 36, 453, 32, 31, 105, 32, 32, 36, 32, 32, 49, 50, 47, 47, 32, - 49, 23, 33, 50, 59, 33, 33, 125, 33, 33, - 446, 33, 50, 79, 79, 33, 102, 33, 35, 100, - 33, 34, 34, 34, 34, 92, 59, 100, 35, 34, - 102, 35, 35, 38, 134, 35, 92, 92, 34, 134, - 207, 125, 38, 34, 38, 39, 38, 39, 444, 136, - 38, 265, 39, 136, 43, 43, 145, 39, 43, 442, - 145, 43, 43, 207, 43, 55, 55, 55, 55, 145, - 43, 265, 43, 46, 146, 146, 46, 439, 223, 46, + 49, 23, 33, 50, 224, 33, 33, 126, 33, 33, + 227, 33, 50, 224, 59, 33, 102, 33, 35, 100, + 33, 34, 34, 34, 34, 227, 34, 100, 35, 34, + 102, 35, 35, 38, 447, 35, 59, 92, 34, 79, + 79, 126, 38, 34, 38, 39, 38, 39, 92, 92, + 38, 209, 39, 311, 43, 43, 137, 39, 43, 311, + 137, 43, 43, 268, 43, 55, 55, 55, 55, 445, + 43, 146, 43, 46, 209, 146, 46, 147, 147, 46, - 46, 374, 46, 438, 374, 437, 46, 223, 410, 46, + 46, 443, 46, 268, 146, 376, 46, 440, 376, 46, 46, 57, 57, 57, 57, 46, 67, 67, 67, 67, - 68, 68, 68, 68, 410, 137, 67, 137, 436, 435, - 68, 137, 157, 157, 157, 157, 158, 158, 158, 158, - 226, 339, 137, 159, 159, 159, 159, 397, 433, 448, - 339, 432, 431, 430, 397, 226, 448, 456, 456, 456, - 456, 456, 456, 456, 457, 429, 457, 457, 457, 457, - 457, 458, 427, 458, 458, 458, 458, 458, 459, 459, - 459, 459, 460, 425, 460, 460, 460, 460, 460, 461, - 424, 423, 461, 461, 462, 462, 462, 462, 462, 463, + 68, 68, 68, 68, 439, 138, 67, 138, 438, 437, + 68, 138, 158, 158, 158, 158, 159, 159, 159, 159, + 341, 398, 138, 160, 160, 160, 160, 411, 398, 341, + 449, 436, 434, 433, 432, 431, 430, 449, 428, 426, + 425, 424, 423, 411, 457, 457, 457, 457, 457, 457, + 457, 458, 422, 458, 458, 458, 458, 458, 459, 421, + 459, 459, 459, 459, 459, 460, 460, 460, 460, 461, + 420, 461, 461, 461, 461, 461, 462, 419, 417, 462, - 463, 422, 463, 421, 420, 419, 418, 416, 414, 413, - 411, 408, 407, 406, 405, 403, 402, 400, 398, 396, - 395, 391, 389, 388, 385, 384, 383, 382, 381, 380, - 379, 378, 377, 375, 373, 372, 371, 370, 369, 368, - 366, 365, 364, 363, 362, 357, 355, 353, 352, 351, - 350, 349, 347, 346, 342, 341, 340, 338, 334, 333, - 331, 330, 327, 326, 325, 324, 323, 322, 321, 320, - 319, 318, 316, 315, 314, 313, 311, 310, 309, 307, - 306, 304, 301, 300, 299, 298, 297, 296, 295, 293, - 292, 290, 289, 288, 286, 285, 284, 282, 281, 278, + 462, 463, 463, 463, 463, 463, 464, 464, 415, 464, + 414, 412, 409, 408, 407, 406, 404, 403, 401, 399, + 397, 396, 392, 391, 390, 387, 386, 385, 384, 383, + 382, 381, 380, 379, 377, 375, 374, 373, 372, 371, + 370, 368, 367, 366, 365, 360, 358, 356, 355, 354, + 353, 351, 349, 348, 344, 343, 342, 340, 336, 335, + 333, 332, 329, 328, 327, 326, 325, 324, 323, 322, + 321, 319, 318, 317, 316, 314, 313, 312, 309, 308, + 306, 303, 302, 301, 300, 299, 298, 297, 295, 294, + 292, 291, 290, 288, 287, 286, 284, 283, 280, 279, - 277, 276, 275, 274, 273, 272, 271, 267, 266, 264, - 263, 262, 259, 258, 257, 256, 254, 252, 251, 250, - 249, 248, 247, 245, 244, 243, 242, 241, 240, 238, - 237, 235, 234, 233, 232, 231, 230, 229, 228, 227, - 224, 222, 221, 220, 219, 218, 217, 216, 215, 213, - 212, 211, 210, 208, 206, 205, 204, 202, 199, 198, - 196, 195, 192, 191, 190, 189, 179, 178, 176, 175, - 174, 173, 172, 169, 168, 167, 164, 162, 155, 154, - 153, 152, 151, 150, 149, 148, 147, 142, 140, 139, - 138, 135, 133, 132, 131, 130, 129, 128, 126, 124, + 278, 277, 276, 275, 274, 270, 269, 267, 266, 265, + 262, 261, 260, 259, 257, 256, 254, 253, 252, 251, + 250, 249, 247, 246, 245, 244, 243, 242, 240, 239, + 237, 236, 235, 234, 233, 232, 231, 229, 228, 225, + 223, 222, 221, 220, 219, 218, 217, 215, 214, 213, + 212, 210, 208, 207, 206, 204, 201, 200, 198, 197, + 194, 193, 192, 191, 187, 180, 179, 177, 176, 175, + 174, 173, 170, 169, 168, 165, 163, 156, 155, 154, + 153, 152, 151, 150, 149, 148, 145, 143, 141, 140, + 139, 136, 135, 134, 133, 132, 131, 130, 129, 127, - 123, 122, 121, 120, 119, 118, 115, 114, 112, 111, - 109, 108, 107, 106, 105, 103, 101, 99, 97, 95, - 94, 90, 86, 85, 82, 80, 78, 75, 73, 58, - 54, 51, 48, 45, 44, 41, 40, 37, 27, 26, - 9, 7, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455 + 125, 124, 123, 122, 121, 120, 119, 116, 115, 113, + 112, 110, 109, 108, 107, 106, 104, 103, 101, 99, + 97, 95, 94, 90, 86, 85, 82, 80, 78, 75, + 73, 58, 54, 51, 48, 45, 44, 41, 40, 37, + 27, 26, 9, 7, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456 } ; @@ -666,7 +666,7 @@ char *yytext; #define INITIAL 0 #line 2 "lexer.l" ///////////////////////////////////////////////////////////////////////// -// $Id: lexer.c,v 1.6 2006-01-23 21:44:44 sshwarts Exp $ +// $Id: lexer.c,v 1.7 2006-01-24 19:03:54 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// #include @@ -900,13 +900,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 456 ) + if ( yy_current_state >= 457 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 543 ); + while ( yy_base[yy_current_state] != 545 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -965,67 +965,64 @@ YY_RULE_SETUP case 7: #line 33 "lexer.l" case 8: +#line 34 "lexer.l" +case 9: YY_RULE_SETUP -#line 33 "lexer.l" +#line 34 "lexer.l" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_CONTINUE); } YY_BREAK -case 9: -#line 35 "lexer.l" case 10: #line 36 "lexer.l" case 11: +#line 37 "lexer.l" +case 12: YY_RULE_SETUP -#line 36 "lexer.l" +#line 37 "lexer.l" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_STEPN); } YY_BREAK -case 12: -#line 38 "lexer.l" case 13: #line 39 "lexer.l" case 14: -YY_RULE_SETUP -#line 39 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_STEP_OVER); } - YY_BREAK +#line 40 "lexer.l" case 15: YY_RULE_SETUP #line 40 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LIST_BREAK); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_STEP_OVER); } YY_BREAK case 16: -#line 42 "lexer.l" -case 17: YY_RULE_SETUP -#line 42 "lexer.l" +#line 41 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LIST_BREAK); } + YY_BREAK +case 17: +#line 43 "lexer.l" +case 18: +YY_RULE_SETUP +#line 43 "lexer.l" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_VBREAKPOINT); } YY_BREAK -case 18: -#line 44 "lexer.l" case 19: +#line 45 "lexer.l" +case 20: YY_RULE_SETUP -#line 44 "lexer.l" +#line 45 "lexer.l" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_LBREAKPOINT); } YY_BREAK -case 20: -#line 46 "lexer.l" case 21: #line 47 "lexer.l" case 22: #line 48 "lexer.l" case 23: -YY_RULE_SETUP -#line 48 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PBREAKPOINT); } - YY_BREAK +#line 49 "lexer.l" case 24: YY_RULE_SETUP #line 49 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_INFO); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PBREAKPOINT); } YY_BREAK case 25: YY_RULE_SETUP #line 50 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PROGRAM); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_INFO); } YY_BREAK case 26: #line 52 "lexer.l" @@ -1055,321 +1052,321 @@ YY_RULE_SETUP case 34: YY_RULE_SETUP #line 59 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_CPU); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SSE); } YY_BREAK case 35: YY_RULE_SETUP #line 60 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_ALL); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_CPU); } YY_BREAK case 36: YY_RULE_SETUP #line 61 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_IDT); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_ALL); } YY_BREAK case 37: YY_RULE_SETUP #line 62 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_IVT); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_IDT); } YY_BREAK case 38: YY_RULE_SETUP #line 63 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_GDT); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_IVT); } YY_BREAK case 39: YY_RULE_SETUP #line 64 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LDT); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_GDT); } YY_BREAK case 40: YY_RULE_SETUP #line 65 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TSS); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LDT); } YY_BREAK case 41: YY_RULE_SETUP #line 66 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DIRTY); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TSS); } YY_BREAK case 42: YY_RULE_SETUP #line 67 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LINUX); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DIRTY); } YY_BREAK case 43: YY_RULE_SETUP #line 68 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DUMP_CPU); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LINUX); } YY_BREAK case 44: -#line 70 "lexer.l" +YY_RULE_SETUP +#line 69 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DUMP_CPU); } + YY_BREAK case 45: #line 71 "lexer.l" case 46: -YY_RULE_SETUP -#line 71 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DEL_BREAKPOINT); } - YY_BREAK +#line 72 "lexer.l" case 47: YY_RULE_SETUP #line 72 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_ENABLE_BREAKPOINT); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DEL_BREAKPOINT); } YY_BREAK case 48: YY_RULE_SETUP #line 73 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DISABLE_BREAKPOINT); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_ENABLE_BREAKPOINT); } YY_BREAK case 49: -#line 75 "lexer.l" +YY_RULE_SETUP +#line 74 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DISABLE_BREAKPOINT); } + YY_BREAK case 50: #line 76 "lexer.l" case 51: +#line 77 "lexer.l" +case 52: YY_RULE_SETUP -#line 76 "lexer.l" +#line 77 "lexer.l" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_QUIT); } YY_BREAK -case 52: -#line 78 "lexer.l" case 53: -YY_RULE_SETUP -#line 78 "lexer.l" -{ BEGIN(EXAMINE); bxlval.sval = strdup(bxtext); return(BX_TOKEN_EXAMINE); } - YY_BREAK +#line 79 "lexer.l" case 54: YY_RULE_SETUP #line 79 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SETPMEM); } +{ BEGIN(EXAMINE); bxlval.sval = strdup(bxtext); return(BX_TOKEN_EXAMINE); } YY_BREAK case 55: YY_RULE_SETUP #line 80 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_QUERY); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SETPMEM); } YY_BREAK case 56: YY_RULE_SETUP #line 81 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PENDING); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_QUERY); } YY_BREAK case 57: YY_RULE_SETUP #line 82 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TAKE); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PENDING); } YY_BREAK case 58: YY_RULE_SETUP #line 83 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DMA); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TAKE); } YY_BREAK case 59: YY_RULE_SETUP #line 84 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_IRQ); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DMA); } YY_BREAK case 60: YY_RULE_SETUP #line 85 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PIC); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_IRQ); } YY_BREAK case 61: YY_RULE_SETUP #line 86 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SET_CPU); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PIC); } YY_BREAK case 62: -#line 88 "lexer.l" +YY_RULE_SETUP +#line 87 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SET_CPU); } + YY_BREAK case 63: #line 89 "lexer.l" case 64: -YY_RULE_SETUP -#line 89 "lexer.l" -{ BEGIN(DISASM); bxlval.sval = strdup(bxtext); return(BX_TOKEN_DISASSEMBLE); } - YY_BREAK +#line 90 "lexer.l" case 65: YY_RULE_SETUP #line 90 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_INSTRUMENT); } +{ BEGIN(DISASM); bxlval.sval = strdup(bxtext); return(BX_TOKEN_DISASSEMBLE); } YY_BREAK case 66: YY_RULE_SETUP #line 91 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_START); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_INSTRUMENT); } YY_BREAK case 67: YY_RULE_SETUP #line 92 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_STOP); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_START); } YY_BREAK case 68: YY_RULE_SETUP #line 93 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_RESET); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_STOP); } YY_BREAK case 69: YY_RULE_SETUP #line 94 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PRINT); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_RESET); } YY_BREAK case 70: YY_RULE_SETUP #line 95 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LOADER); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PRINT); } YY_BREAK case 71: YY_RULE_SETUP #line 96 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DOIT); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LOADER); } YY_BREAK case 72: YY_RULE_SETUP #line 97 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACEON); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DOIT); } YY_BREAK case 73: YY_RULE_SETUP #line 98 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACEOFF); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACEON); } YY_BREAK case 74: YY_RULE_SETUP #line 99 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACEREGON); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACEOFF); } YY_BREAK case 75: YY_RULE_SETUP #line 100 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACEREGOFF); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACEREGON); } YY_BREAK case 76: YY_RULE_SETUP #line 101 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PTIME); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACEREGOFF); } YY_BREAK case 77: YY_RULE_SETUP #line 102 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TIMEBP); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PTIME); } YY_BREAK case 78: YY_RULE_SETUP #line 103 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TIMEBP_ABSOLUTE); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TIMEBP); } YY_BREAK case 79: YY_RULE_SETUP #line 104 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_RECORD); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TIMEBP_ABSOLUTE); } YY_BREAK case 80: YY_RULE_SETUP #line 105 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PLAYBACK); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_RECORD); } YY_BREAK case 81: YY_RULE_SETUP #line 106 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_MODEBP); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PLAYBACK); } YY_BREAK case 82: YY_RULE_SETUP #line 107 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PRINT_STACK); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_MODEBP); } YY_BREAK case 83: YY_RULE_SETUP #line 108 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WATCH); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PRINT_STACK); } YY_BREAK case 84: YY_RULE_SETUP #line 109 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_UNWATCH); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WATCH); } YY_BREAK case 85: YY_RULE_SETUP #line 110 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_READ); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_UNWATCH); } YY_BREAK case 86: YY_RULE_SETUP #line 111 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WRITE); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_READ); } YY_BREAK case 87: YY_RULE_SETUP #line 112 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_CONTINUE); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WRITE); } YY_BREAK case 88: YY_RULE_SETUP #line 113 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SHOW); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_CONTINUE); } YY_BREAK case 89: YY_RULE_SETUP #line 114 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOL); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SHOW); } YY_BREAK case 90: YY_RULE_SETUP #line 115 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOLS); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LOAD_SYMBOLS); } YY_BREAK case 91: YY_RULE_SETUP #line 116 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LIST_SYMBOLS); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOLS); } YY_BREAK case 92: YY_RULE_SETUP #line 117 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_GLOBAL); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LIST_SYMBOLS); } YY_BREAK case 93: YY_RULE_SETUP #line 118 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WHERE); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_GLOBAL); } YY_BREAK case 94: YY_RULE_SETUP #line 119 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PRINT_STRING); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WHERE); } YY_BREAK case 95: YY_RULE_SETUP #line 120 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DIFF_MEMORY); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PRINT_STRING); } YY_BREAK case 96: YY_RULE_SETUP #line 121 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYNC_MEMORY); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DIFF_MEMORY); } YY_BREAK case 97: YY_RULE_SETUP #line 122 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYNC_CPU); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYNC_MEMORY); } YY_BREAK case 98: YY_RULE_SETUP #line 123 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_FAST_FORWARD); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYNC_CPU); } YY_BREAK case 99: YY_RULE_SETUP #line 124 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PHY_2_LOG); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_FAST_FORWARD); } YY_BREAK case 100: YY_RULE_SETUP #line 125 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_INFO_ADDRESS); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PHY_2_LOG); } YY_BREAK case 101: YY_RULE_SETUP #line 126 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_NE2000); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_INFO_ADDRESS); } YY_BREAK case 102: YY_RULE_SETUP @@ -1379,199 +1376,199 @@ YY_RULE_SETUP case 103: YY_RULE_SETUP #line 128 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PAGE); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_NE2000); } YY_BREAK case 104: YY_RULE_SETUP #line 129 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_VGA); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PAGE); } YY_BREAK case 105: YY_RULE_SETUP #line 130 "lexer.l" -{ bxlval.reg=rAL; return (BX_TOKEN_REG_AL);} +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_VGA); } YY_BREAK case 106: YY_RULE_SETUP #line 131 "lexer.l" -{ bxlval.reg=rBL; return (BX_TOKEN_REG_BL);} +{ bxlval.reg=rAL; return (BX_TOKEN_REG_AL);} YY_BREAK case 107: YY_RULE_SETUP #line 132 "lexer.l" -{ bxlval.reg=rCL; return (BX_TOKEN_REG_CL);} +{ bxlval.reg=rBL; return (BX_TOKEN_REG_BL);} YY_BREAK case 108: YY_RULE_SETUP #line 133 "lexer.l" -{ bxlval.reg=rDL; return (BX_TOKEN_REG_DL);} +{ bxlval.reg=rCL; return (BX_TOKEN_REG_CL);} YY_BREAK case 109: YY_RULE_SETUP #line 134 "lexer.l" -{ bxlval.reg=rAH; return (BX_TOKEN_REG_AH);} +{ bxlval.reg=rDL; return (BX_TOKEN_REG_DL);} YY_BREAK case 110: YY_RULE_SETUP #line 135 "lexer.l" -{ bxlval.reg=rBH; return (BX_TOKEN_REG_BH);} +{ bxlval.reg=rAH; return (BX_TOKEN_REG_AH);} YY_BREAK case 111: YY_RULE_SETUP #line 136 "lexer.l" -{ bxlval.reg=rCH; return (BX_TOKEN_REG_CH);} +{ bxlval.reg=rBH; return (BX_TOKEN_REG_BH);} YY_BREAK case 112: YY_RULE_SETUP #line 137 "lexer.l" -{ bxlval.reg=rDH; return (BX_TOKEN_REG_DH);} +{ bxlval.reg=rCH; return (BX_TOKEN_REG_CH);} YY_BREAK case 113: YY_RULE_SETUP #line 138 "lexer.l" -{ bxlval.reg=rAX; return (BX_TOKEN_REG_AX);} +{ bxlval.reg=rDH; return (BX_TOKEN_REG_DH);} YY_BREAK case 114: YY_RULE_SETUP #line 139 "lexer.l" -{ bxlval.reg=rBX; return (BX_TOKEN_REG_BX);} +{ bxlval.reg=rAX; return (BX_TOKEN_REG_AX);} YY_BREAK case 115: YY_RULE_SETUP #line 140 "lexer.l" -{ bxlval.reg=rCX; return (BX_TOKEN_REG_CX);} +{ bxlval.reg=rBX; return (BX_TOKEN_REG_BX);} YY_BREAK case 116: YY_RULE_SETUP #line 141 "lexer.l" -{ bxlval.reg=rDX; return (BX_TOKEN_REG_DX);} +{ bxlval.reg=rCX; return (BX_TOKEN_REG_CX);} YY_BREAK case 117: YY_RULE_SETUP #line 142 "lexer.l" -{ bxlval.reg=rEAX; return (BX_TOKEN_REG_EAX);} +{ bxlval.reg=rDX; return (BX_TOKEN_REG_DX);} YY_BREAK case 118: YY_RULE_SETUP #line 143 "lexer.l" -{ bxlval.reg=rEBX; return (BX_TOKEN_REG_EBX);} +{ bxlval.reg=rEAX; return (BX_TOKEN_REG_EAX);} YY_BREAK case 119: YY_RULE_SETUP #line 144 "lexer.l" -{ bxlval.reg=rECX; return (BX_TOKEN_REG_ECX);} +{ bxlval.reg=rEBX; return (BX_TOKEN_REG_EBX);} YY_BREAK case 120: YY_RULE_SETUP #line 145 "lexer.l" -{ bxlval.reg=rEDX; return (BX_TOKEN_REG_EDX);} +{ bxlval.reg=rECX; return (BX_TOKEN_REG_ECX);} YY_BREAK case 121: YY_RULE_SETUP #line 146 "lexer.l" -{ bxlval.reg=rSI; return (BX_TOKEN_REG_SI);} +{ bxlval.reg=rEDX; return (BX_TOKEN_REG_EDX);} YY_BREAK case 122: YY_RULE_SETUP #line 147 "lexer.l" -{ bxlval.reg=rDI; return (BX_TOKEN_REG_DI);} +{ bxlval.reg=rSI; return (BX_TOKEN_REG_SI);} YY_BREAK case 123: YY_RULE_SETUP #line 148 "lexer.l" -{ bxlval.reg=rBP; return (BX_TOKEN_REG_BP);} +{ bxlval.reg=rDI; return (BX_TOKEN_REG_DI);} YY_BREAK case 124: YY_RULE_SETUP #line 149 "lexer.l" -{ bxlval.reg=rSP; return (BX_TOKEN_REG_SP);} +{ bxlval.reg=rBP; return (BX_TOKEN_REG_BP);} YY_BREAK case 125: YY_RULE_SETUP #line 150 "lexer.l" -{ bxlval.reg=rIP; return (BX_TOKEN_REG_IP);} +{ bxlval.reg=rSP; return (BX_TOKEN_REG_SP);} YY_BREAK case 126: YY_RULE_SETUP #line 151 "lexer.l" -{ bxlval.reg=rESI; return (BX_TOKEN_REG_ESI);} +{ bxlval.reg=rIP; return (BX_TOKEN_REG_IP);} YY_BREAK case 127: YY_RULE_SETUP #line 152 "lexer.l" -{ bxlval.reg=rEDI; return (BX_TOKEN_REG_EDI);} +{ bxlval.reg=rESI; return (BX_TOKEN_REG_ESI);} YY_BREAK case 128: YY_RULE_SETUP #line 153 "lexer.l" -{ bxlval.reg=rEBP; return (BX_TOKEN_REG_EBP);} +{ bxlval.reg=rEDI; return (BX_TOKEN_REG_EDI);} YY_BREAK case 129: YY_RULE_SETUP #line 154 "lexer.l" -{ bxlval.reg=rESP; return (BX_TOKEN_REG_ESP);} +{ bxlval.reg=rEBP; return (BX_TOKEN_REG_EBP);} YY_BREAK case 130: YY_RULE_SETUP #line 155 "lexer.l" -{ bxlval.reg=rEIP; return (BX_TOKEN_REG_EIP);} +{ bxlval.reg=rESP; return (BX_TOKEN_REG_ESP);} YY_BREAK case 131: YY_RULE_SETUP #line 156 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_CS); } +{ bxlval.reg=rEIP; return (BX_TOKEN_REG_EIP);} YY_BREAK case 132: YY_RULE_SETUP #line 157 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_ES); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_CS); } YY_BREAK case 133: YY_RULE_SETUP #line 158 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SS); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_ES); } YY_BREAK case 134: YY_RULE_SETUP #line 159 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DS); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SS); } YY_BREAK case 135: YY_RULE_SETUP #line 160 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_FS); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DS); } YY_BREAK case 136: YY_RULE_SETUP #line 161 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_GS); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_FS); } YY_BREAK case 137: YY_RULE_SETUP #line 162 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_FLAGS); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_GS); } YY_BREAK case 138: YY_RULE_SETUP #line 163 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_ALWAYS_CHECK); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_FLAGS); } YY_BREAK case 139: YY_RULE_SETUP #line 164 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_HELP); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_ALWAYS_CHECK); } YY_BREAK case 140: -#line 166 "lexer.l" -case 141: YY_RULE_SETUP -#line 166 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_CALC); } +#line 165 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_HELP); } YY_BREAK +case 141: +#line 167 "lexer.l" case 142: YY_RULE_SETUP #line 167 "lexer.l" -{ BEGIN(INITIAL); bxlval.sval = strdup(bxtext); return(BX_TOKEN_XFORMAT); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_CALC); } YY_BREAK case 143: YY_RULE_SETUP @@ -1581,128 +1578,133 @@ YY_RULE_SETUP case 144: YY_RULE_SETUP #line 169 "lexer.l" -{ BEGIN(INITIAL); bxlval.sval = strdup(bxtext); return(BX_TOKEN_DISFORMAT); } +{ BEGIN(INITIAL); bxlval.sval = strdup(bxtext); return(BX_TOKEN_XFORMAT); } YY_BREAK case 145: YY_RULE_SETUP #line 170 "lexer.l" -{ return ('+'); } +{ BEGIN(INITIAL); bxlval.sval = strdup(bxtext); return(BX_TOKEN_DISFORMAT); } YY_BREAK case 146: YY_RULE_SETUP #line 171 "lexer.l" -{ return ('-'); } +{ return ('+'); } YY_BREAK case 147: YY_RULE_SETUP #line 172 "lexer.l" -{ return ('*'); } +{ return ('-'); } YY_BREAK case 148: YY_RULE_SETUP #line 173 "lexer.l" -{ return ('/'); } +{ return ('*'); } YY_BREAK case 149: YY_RULE_SETUP #line 174 "lexer.l" -{ return (BX_TOKEN_RSHIFT); } +{ return ('/'); } YY_BREAK case 150: YY_RULE_SETUP #line 175 "lexer.l" -{ return (BX_TOKEN_LSHIFT); } +{ return (BX_TOKEN_RSHIFT); } YY_BREAK case 151: YY_RULE_SETUP #line 176 "lexer.l" -{ return ('&'); } +{ return (BX_TOKEN_LSHIFT); } YY_BREAK case 152: YY_RULE_SETUP #line 177 "lexer.l" -{ return ('|'); } +{ return ('&'); } YY_BREAK case 153: YY_RULE_SETUP #line 178 "lexer.l" -{ return ('^'); } +{ return ('|'); } YY_BREAK case 154: YY_RULE_SETUP #line 179 "lexer.l" -{ return ('!'); } +{ return ('^'); } YY_BREAK case 155: YY_RULE_SETUP #line 180 "lexer.l" -{ return ('('); } +{ return ('!'); } YY_BREAK case 156: YY_RULE_SETUP #line 181 "lexer.l" -{ return (')'); } +{ return ('('); } YY_BREAK case 157: -#line 183 "lexer.l" -case 158: YY_RULE_SETUP -#line 183 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_STRING); } +#line 182 "lexer.l" +{ return (')'); } YY_BREAK +case 158: +#line 184 "lexer.l" case 159: YY_RULE_SETUP #line 184 "lexer.l" -{ bxlval.uval = strtoul(bxtext+2, NULL, 16); return(BX_TOKEN_NUMERIC); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_STRING); } YY_BREAK case 160: YY_RULE_SETUP #line 185 "lexer.l" -{ bxlval.uval = strtoul(bxtext+1, NULL, 8); return(BX_TOKEN_NUMERIC); } +{ bxlval.uval = strtoul(bxtext+2, NULL, 16); return(BX_TOKEN_NUMERIC); } YY_BREAK case 161: YY_RULE_SETUP #line 186 "lexer.l" -{ bxlval.ulval = strtoull(bxtext, NULL, 10); return(BX_TOKEN_LONG_NUMERIC); } +{ bxlval.uval = strtoul(bxtext+1, NULL, 8); return(BX_TOKEN_NUMERIC); } YY_BREAK case 162: YY_RULE_SETUP #line 187 "lexer.l" -{ bxlval.uval = strtoul(bxtext, NULL, 10); return(BX_TOKEN_NUMERIC); } +{ bxlval.ulval = strtoull(bxtext, NULL, 10); return(BX_TOKEN_LONG_NUMERIC); } YY_BREAK case 163: YY_RULE_SETUP #line 188 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOLNAME); } +{ bxlval.uval = strtoul(bxtext, NULL, 10); return(BX_TOKEN_NUMERIC); } YY_BREAK case 164: YY_RULE_SETUP #line 189 "lexer.l" -{ return ('\n'); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOLNAME); } YY_BREAK case 165: YY_RULE_SETUP #line 190 "lexer.l" -{ return('\n'); } +{ return ('\n'); } YY_BREAK case 166: YY_RULE_SETUP #line 191 "lexer.l" -; // eat up comments '//' +{ return('\n'); } YY_BREAK case 167: YY_RULE_SETUP #line 192 "lexer.l" -{ return(bxtext[0]); } +; // eat up comments '//' YY_BREAK case 168: YY_RULE_SETUP #line 193 "lexer.l" -{ BEGIN(INITIAL); unput(*bxtext); } +{ return(bxtext[0]); } YY_BREAK case 169: YY_RULE_SETUP #line 194 "lexer.l" +{ BEGIN(INITIAL); unput(*bxtext); } + YY_BREAK +case 170: +YY_RULE_SETUP +#line 195 "lexer.l" ECHO; YY_BREAK case YY_STATE_EOF(INITIAL): @@ -1998,7 +2000,7 @@ static yy_state_type yy_get_previous_state() while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 456 ) + if ( yy_current_state >= 457 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2033,11 +2035,11 @@ yy_state_type yy_current_state; while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 456 ) + if ( yy_current_state >= 457 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 455); + yy_is_jam = (yy_current_state == 456); return yy_is_jam ? 0 : yy_current_state; } @@ -2596,7 +2598,7 @@ int main() return 0; } #endif -#line 194 "lexer.l" +#line 195 "lexer.l" // [A-Za-z_][A-Za-z0-9_]* { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GENERIC); } diff --git a/bochs/bx_debug/lexer.l b/bochs/bx_debug/lexer.l index ca1c7f024..9404594ae 100644 --- a/bochs/bx_debug/lexer.l +++ b/bochs/bx_debug/lexer.l @@ -1,6 +1,6 @@ %{ ///////////////////////////////////////////////////////////////////////// -// $Id: lexer.l,v 1.6 2006-01-23 21:44:44 sshwarts Exp $ +// $Id: lexer.l,v 1.7 2006-01-24 19:03:54 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// #include @@ -30,7 +30,8 @@ on { bxlval.sval = strdup(bxtext); return(BX_TOKEN_ON); } off { bxlval.sval = strdup(bxtext); return(BX_TOKEN_OFF); } crc { bxlval.sval = strdup(bxtext); return(BX_TOKEN_CRC); } c | -cont { bxlval.sval = strdup(bxtext); return(BX_TOKEN_CONTINUE); } +cont | +continue { bxlval.sval = strdup(bxtext); return(BX_TOKEN_CONTINUE); } stepi | step | s { bxlval.sval = strdup(bxtext); return(BX_TOKEN_STEPN); } @@ -47,7 +48,6 @@ b | pb | pbreak { bxlval.sval = strdup(bxtext); return(BX_TOKEN_PBREAKPOINT); } info { bxlval.sval = strdup(bxtext); return(BX_TOKEN_INFO); } -program { bxlval.sval = strdup(bxtext); return(BX_TOKEN_PROGRAM); } cr | creg | cregs { bxlval.sval = strdup(bxtext); return(BX_TOKEN_CONTROL_REGS); } @@ -56,6 +56,7 @@ reg | regs | registers { bxlval.sval = strdup(bxtext); return(BX_TOKEN_REGISTERS); } fpu { bxlval.sval = strdup(bxtext); return(BX_TOKEN_FPU); } +sse { bxlval.sval = strdup(bxtext); return(BX_TOKEN_SSE); } cpu { bxlval.sval = strdup(bxtext); return(BX_TOKEN_CPU); } all { bxlval.sval = strdup(bxtext); return(BX_TOKEN_ALL); } idt { bxlval.sval = strdup(bxtext); return(BX_TOKEN_IDT); } @@ -85,7 +86,7 @@ irq { bxlval.sval = strdup(bxtext); return(BX_TOKEN_IRQ); } pic { bxlval.sval = strdup(bxtext); return(BX_TOKEN_PIC); } set_cpu { bxlval.sval = strdup(bxtext); return(BX_TOKEN_SET_CPU); } u | -disas | +disasm | disassemble { BEGIN(DISASM); bxlval.sval = strdup(bxtext); return(BX_TOKEN_DISASSEMBLE); } instrument { bxlval.sval = strdup(bxtext); return(BX_TOKEN_INSTRUMENT); } start { bxlval.sval = strdup(bxtext); return(BX_TOKEN_START); } @@ -111,7 +112,7 @@ read { bxlval.sval = strdup(bxtext); return(BX_TOKEN_READ); } write { bxlval.sval = strdup(bxtext); return(BX_TOKEN_WRITE); } continue { bxlval.sval = strdup(bxtext); return(BX_TOKEN_CONTINUE); } show { bxlval.sval = strdup(bxtext); return(BX_TOKEN_SHOW); } -load-symbols { bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOL); } +load-symbols { bxlval.sval = strdup(bxtext); return(BX_TOKEN_LOAD_SYMBOLS); } symbols { bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOLS); } slist { bxlval.sval = strdup(bxtext); return(BX_TOKEN_LIST_SYMBOLS); } global { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GLOBAL); } @@ -159,7 +160,7 @@ ss { bxlval.sval = strdup(bxtext); return(BX_TOKEN_SS); } ds { bxlval.sval = strdup(bxtext); return(BX_TOKEN_DS); } fs { bxlval.sval = strdup(bxtext); return(BX_TOKEN_FS); } gs { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GS); } -flags { bxlval.sval = strdup(bxtext); return(BX_TOKEN_FLAGS); } +flags|eflags { bxlval.sval = strdup(bxtext); return(BX_TOKEN_FLAGS); } force-check { bxlval.sval = strdup(bxtext); return(BX_TOKEN_ALWAYS_CHECK); } help { bxlval.sval = strdup(bxtext); return(BX_TOKEN_HELP); } \? | diff --git a/bochs/bx_debug/parser.c b/bochs/bx_debug/parser.c index a3a752cde..0ad8b9dcd 100644 --- a/bochs/bx_debug/parser.c +++ b/bochs/bx_debug/parser.c @@ -103,10 +103,10 @@ BX_TOKEN_DISABLE_BREAKPOINT = 296, BX_TOKEN_INFO = 297, BX_TOKEN_QUIT = 298, - BX_TOKEN_PROGRAM = 299, - BX_TOKEN_REGISTERS = 300, - BX_TOKEN_CPU = 301, - BX_TOKEN_FPU = 302, + BX_TOKEN_REGISTERS = 299, + BX_TOKEN_CPU = 300, + BX_TOKEN_FPU = 301, + BX_TOKEN_SSE = 302, BX_TOKEN_ALL = 303, BX_TOKEN_IDT = 304, BX_TOKEN_GDT = 305, @@ -154,7 +154,7 @@ BX_TOKEN_READ = 347, BX_TOKEN_WRITE = 348, BX_TOKEN_SHOW = 349, - BX_TOKEN_SYMBOL = 350, + BX_TOKEN_LOAD_SYMBOLS = 350, BX_TOKEN_SYMBOLS = 351, BX_TOKEN_LIST_SYMBOLS = 352, BX_TOKEN_GLOBAL = 353, @@ -232,10 +232,10 @@ #define BX_TOKEN_DISABLE_BREAKPOINT 296 #define BX_TOKEN_INFO 297 #define BX_TOKEN_QUIT 298 -#define BX_TOKEN_PROGRAM 299 -#define BX_TOKEN_REGISTERS 300 -#define BX_TOKEN_CPU 301 -#define BX_TOKEN_FPU 302 +#define BX_TOKEN_REGISTERS 299 +#define BX_TOKEN_CPU 300 +#define BX_TOKEN_FPU 301 +#define BX_TOKEN_SSE 302 #define BX_TOKEN_ALL 303 #define BX_TOKEN_IDT 304 #define BX_TOKEN_GDT 305 @@ -283,7 +283,7 @@ #define BX_TOKEN_READ 347 #define BX_TOKEN_WRITE 348 #define BX_TOKEN_SHOW 349 -#define BX_TOKEN_SYMBOL 350 +#define BX_TOKEN_LOAD_SYMBOLS 350 #define BX_TOKEN_SYMBOLS 351 #define BX_TOKEN_LIST_SYMBOLS 352 #define BX_TOKEN_GLOBAL 353 @@ -469,18 +469,18 @@ union yyalloc #endif /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 247 +#define YYFINAL 285 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1127 +#define YYLAST 1256 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 143 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 54 /* YYNRULES -- Number of rules. */ -#define YYNRULES 225 +#define YYNRULES 263 /* YYNRULES -- Number of states. */ -#define YYNSTATES 414 +#define YYNSTATES 490 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -554,13 +554,17 @@ static const unsigned short yyprhs[] = 420, 422, 424, 427, 430, 434, 438, 442, 445, 450, 454, 458, 461, 467, 471, 475, 480, 484, 487, 491, 496, 500, 504, 508, 512, 516, 520, 525, 528, 531, - 535, 538, 542, 544, 546, 548, 550, 552, 554, 556, - 558, 560, 562, 564, 566, 568, 570, 572, 574, 576, - 578, 580, 582, 584, 586, 588, 590, 592, 594, 596, - 598, 600, 602, 604, 606, 608, 612, 616, 620, 624, - 628, 632, 636, 640, 644, 647, 650, 654, 656, 658, - 660, 662, 664, 668, 672, 676, 680, 684, 688, 692, - 696, 700, 704, 707, 710, 714 + 535, 539, 543, 547, 551, 555, 559, 563, 567, 571, + 575, 579, 583, 587, 591, 595, 599, 603, 607, 611, + 615, 619, 623, 627, 631, 635, 639, 643, 647, 651, + 655, 659, 663, 667, 671, 675, 679, 683, 687, 690, + 694, 696, 698, 700, 702, 704, 706, 708, 710, 712, + 714, 716, 718, 720, 722, 724, 726, 728, 730, 732, + 734, 736, 738, 740, 742, 744, 746, 748, 750, 752, + 754, 756, 758, 760, 764, 768, 772, 776, 780, 784, + 788, 792, 796, 799, 802, 806, 808, 810, 812, 814, + 816, 820, 824, 828, 832, 836, 840, 844, 848, 852, + 856, 859, 862, 866 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -598,15 +602,15 @@ static const short yyrhs[] = 195, 137, -1, 37, 78, 137, -1, 38, 137, -1, 38, 195, 137, -1, 38, 132, 195, 137, -1, 35, 137, -1, 97, 137, -1, 97, 78, 137, -1, 42, - 38, 137, -1, 42, 46, 137, -1, 42, 44, 137, - -1, 42, 45, 137, -1, 42, 47, 137, -1, 42, + 38, 137, -1, 42, 45, 137, -1, 42, 44, 137, + -1, 42, 46, 137, -1, 42, 47, 137, -1, 42, 48, 137, -1, 42, 53, 137, -1, 42, 49, 169, 137, -1, 42, 127, 169, 137, -1, 42, 50, 169, 137, -1, 42, 51, 169, 137, -1, 42, 52, 169, 137, -1, 42, 118, 137, -1, 42, 54, 137, -1, 42, 96, 137, -1, 42, 96, 78, 137, -1, 42, 55, 137, -1, 42, 109, 137, -1, 42, 109, 111, - 106, 137, -1, 42, 109, 111, 106, 45, 106, 137, + 106, 137, -1, 42, 109, 111, 106, 44, 106, 137, -1, 42, 110, 137, -1, 42, 124, 137, -1, -1, 170, -1, 195, -1, 195, 195, -1, 66, 137, -1, 39, 106, 137, -1, 40, 106, 137, -1, 41, 106, @@ -619,25 +623,41 @@ static const short yyrhs[] = 72, 74, 137, -1, 72, 75, 137, -1, 72, 76, 137, -1, 77, 78, 137, -1, 79, 106, 137, -1, 80, 106, 106, 137, -1, 120, 137, -1, 121, 137, - -1, 122, 78, 137, -1, 122, 137, -1, 123, 195, - 137, -1, 3, -1, 4, -1, 5, -1, 6, -1, - 7, -1, 8, -1, 9, -1, 10, -1, 11, -1, - 12, -1, 13, -1, 14, -1, 15, -1, 16, -1, - 17, -1, 18, -1, 19, -1, 20, -1, 24, -1, - 25, -1, 21, -1, 22, -1, 23, -1, 26, -1, - 27, -1, 28, -1, 190, -1, 191, -1, 192, -1, - 106, -1, 107, -1, 193, -1, 147, -1, 194, 128, - 194, -1, 194, 129, 194, -1, 194, 132, 194, -1, - 194, 133, 194, -1, 194, 125, 194, -1, 194, 126, - 194, -1, 194, 130, 194, -1, 194, 131, 194, -1, - 194, 134, 194, -1, 140, 194, -1, 129, 194, -1, - 141, 194, 142, -1, 106, -1, 107, -1, 78, -1, - 193, -1, 147, -1, 195, 138, 195, -1, 195, 128, - 195, -1, 195, 129, 195, -1, 195, 132, 195, -1, - 195, 133, 195, -1, 195, 125, 195, -1, 195, 126, - 195, -1, 195, 130, 195, -1, 195, 131, 195, -1, - 195, 134, 195, -1, 140, 195, -1, 129, 195, -1, - 141, 195, 142, -1, 45, 193, 139, 195, 137, -1 + -1, 122, 43, 137, -1, 122, 29, 137, -1, 122, + 30, 137, -1, 122, 31, 137, -1, 122, 36, 137, + -1, 122, 37, 137, -1, 122, 39, 137, -1, 122, + 40, 137, -1, 122, 41, 137, -1, 122, 35, 137, + -1, 122, 88, 137, -1, 122, 80, 137, -1, 122, + 81, 137, -1, 122, 82, 137, -1, 122, 120, 137, + -1, 122, 121, 137, -1, 122, 66, 137, -1, 122, + 67, 137, -1, 122, 83, 137, -1, 122, 85, 137, + -1, 122, 84, 137, -1, 122, 89, 137, -1, 122, + 86, 137, -1, 122, 87, 137, -1, 122, 95, 137, + -1, 122, 97, 137, -1, 122, 44, 137, -1, 122, + 59, 137, -1, 122, 71, 137, -1, 122, 90, 137, + -1, 122, 91, 137, -1, 122, 56, 137, -1, 122, + 72, 137, -1, 122, 33, 137, -1, 122, 42, 137, + -1, 122, 94, 137, -1, 122, 123, 137, -1, 122, + 122, 137, -1, 122, 78, 137, -1, 122, 137, -1, + 123, 195, 137, -1, 3, -1, 4, -1, 5, -1, + 6, -1, 7, -1, 8, -1, 9, -1, 10, -1, + 11, -1, 12, -1, 13, -1, 14, -1, 15, -1, + 16, -1, 17, -1, 18, -1, 19, -1, 20, -1, + 24, -1, 25, -1, 21, -1, 22, -1, 23, -1, + 26, -1, 27, -1, 28, -1, 190, -1, 191, -1, + 192, -1, 106, -1, 107, -1, 193, -1, 147, -1, + 194, 128, 194, -1, 194, 129, 194, -1, 194, 132, + 194, -1, 194, 133, 194, -1, 194, 125, 194, -1, + 194, 126, 194, -1, 194, 130, 194, -1, 194, 131, + 194, -1, 194, 134, 194, -1, 140, 194, -1, 129, + 194, -1, 141, 194, 142, -1, 106, -1, 107, -1, + 78, -1, 193, -1, 147, -1, 195, 138, 195, -1, + 195, 128, 195, -1, 195, 129, 195, -1, 195, 132, + 195, -1, 195, 133, 195, -1, 195, 125, 195, -1, + 195, 126, 195, -1, 195, 130, 195, -1, 195, 131, + 195, -1, 195, 134, 195, -1, 140, 195, -1, 129, + 195, -1, 141, 195, 142, -1, 44, 193, 139, 195, + 137, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -659,13 +679,17 @@ static const unsigned short yyrline[] = 677, 680, 685, 692, 700, 708, 715, 723, 732, 740, 748, 761, 777, 785, 793, 798, 803, 811, 819, 824, 832, 837, 842, 847, 855, 863, 871, 879, 887, 895, - 900, 908, 916, 917, 918, 919, 920, 921, 922, 923, - 924, 925, 926, 927, 928, 929, 930, 931, 936, 937, - 938, 939, 944, 945, 946, 947, 948, 949, 954, 955, - 956, 962, 963, 964, 965, 966, 967, 968, 969, 970, - 971, 972, 973, 974, 975, 976, 977, 982, 983, 984, - 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, - 995, 996, 997, 998, 999, 1003 + 900, 905, 910, 915, 920, 925, 930, 935, 940, 945, + 950, 955, 960, 965, 970, 975, 980, 985, 990, 995, + 1000, 1005, 1010, 1015, 1020, 1025, 1030, 1035, 1041, 1050, + 1057, 1070, 1078, 1087, 1107, 1121, 1131, 1136, 1142, 1150, + 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, + 1168, 1169, 1170, 1171, 1172, 1173, 1178, 1179, 1180, 1181, + 1186, 1187, 1188, 1189, 1190, 1191, 1196, 1197, 1198, 1204, + 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, + 1215, 1216, 1217, 1218, 1219, 1224, 1225, 1226, 1227, 1228, + 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, + 1239, 1240, 1241, 1245 }; #endif @@ -688,39 +712,39 @@ static const char *const yytname[] = "BX_TOKEN_LIST_BREAK", "BX_TOKEN_VBREAKPOINT", "BX_TOKEN_LBREAKPOINT", "BX_TOKEN_PBREAKPOINT", "BX_TOKEN_DEL_BREAKPOINT", "BX_TOKEN_ENABLE_BREAKPOINT", "BX_TOKEN_DISABLE_BREAKPOINT", - "BX_TOKEN_INFO", "BX_TOKEN_QUIT", "BX_TOKEN_PROGRAM", - "BX_TOKEN_REGISTERS", "BX_TOKEN_CPU", "BX_TOKEN_FPU", "BX_TOKEN_ALL", - "BX_TOKEN_IDT", "BX_TOKEN_GDT", "BX_TOKEN_LDT", "BX_TOKEN_TSS", - "BX_TOKEN_DIRTY", "BX_TOKEN_LINUX", "BX_TOKEN_CONTROL_REGS", - "BX_TOKEN_EXAMINE", "BX_TOKEN_XFORMAT", "BX_TOKEN_DISFORMAT", - "BX_TOKEN_SETPMEM", "BX_TOKEN_SYMBOLNAME", "BX_TOKEN_QUERY", - "BX_TOKEN_PENDING", "BX_TOKEN_TAKE", "BX_TOKEN_DMA", "BX_TOKEN_IRQ", - "BX_TOKEN_DUMP_CPU", "BX_TOKEN_SET_CPU", "BX_TOKEN_DIS", "BX_TOKEN_ON", - "BX_TOKEN_OFF", "BX_TOKEN_DISASSEMBLE", "BX_TOKEN_INSTRUMENT", - "BX_TOKEN_START", "BX_TOKEN_STOP", "BX_TOKEN_RESET", "BX_TOKEN_PRINT", - "BX_TOKEN_LOADER", "BX_TOKEN_STRING", "BX_TOKEN_DOIT", "BX_TOKEN_CRC", - "BX_TOKEN_TRACEON", "BX_TOKEN_TRACEOFF", "BX_TOKEN_PTIME", - "BX_TOKEN_TIMEBP_ABSOLUTE", "BX_TOKEN_TIMEBP", "BX_TOKEN_RECORD", - "BX_TOKEN_PLAYBACK", "BX_TOKEN_MODEBP", "BX_TOKEN_PRINT_STACK", - "BX_TOKEN_WATCH", "BX_TOKEN_UNWATCH", "BX_TOKEN_READ", "BX_TOKEN_WRITE", - "BX_TOKEN_SHOW", "BX_TOKEN_SYMBOL", "BX_TOKEN_SYMBOLS", - "BX_TOKEN_LIST_SYMBOLS", "BX_TOKEN_GLOBAL", "BX_TOKEN_WHERE", - "BX_TOKEN_PRINT_STRING", "BX_TOKEN_DIFF_MEMORY", "BX_TOKEN_SYNC_MEMORY", - "BX_TOKEN_SYNC_CPU", "BX_TOKEN_FAST_FORWARD", "BX_TOKEN_PHY_2_LOG", - "BX_TOKEN_NUMERIC", "BX_TOKEN_LONG_NUMERIC", "BX_TOKEN_INFO_ADDRESS", - "BX_TOKEN_NE2000", "BX_TOKEN_PIC", "BX_TOKEN_PAGE", "BX_TOKEN_CS", - "BX_TOKEN_ES", "BX_TOKEN_SS", "BX_TOKEN_DS", "BX_TOKEN_FS", - "BX_TOKEN_GS", "BX_TOKEN_FLAGS", "BX_TOKEN_ALWAYS_CHECK", - "BX_TOKEN_TRACEREGON", "BX_TOKEN_TRACEREGOFF", "BX_TOKEN_HELP", - "BX_TOKEN_CALC", "BX_TOKEN_VGA", "BX_TOKEN_RSHIFT", "BX_TOKEN_LSHIFT", - "BX_TOKEN_IVT", "'+'", "'-'", "'|'", "'^'", "'*'", "'/'", "'&'", "NEG", - "NOT", "'\\n'", "':'", "'='", "'!'", "'('", "')'", "$accept", - "commands", "command", "cosim_commands", "segment_register", - "timebp_command", "record_command", "playback_command", - "modebp_command", "show_command", "ptime_command", "trace_on_command", - "trace_off_command", "print_stack_command", "watch_point_command", - "symbol_command", "where_command", "print_string_command", - "continue_command", "stepN_command", "step_over_command", "set_command", + "BX_TOKEN_INFO", "BX_TOKEN_QUIT", "BX_TOKEN_REGISTERS", "BX_TOKEN_CPU", + "BX_TOKEN_FPU", "BX_TOKEN_SSE", "BX_TOKEN_ALL", "BX_TOKEN_IDT", + "BX_TOKEN_GDT", "BX_TOKEN_LDT", "BX_TOKEN_TSS", "BX_TOKEN_DIRTY", + "BX_TOKEN_LINUX", "BX_TOKEN_CONTROL_REGS", "BX_TOKEN_EXAMINE", + "BX_TOKEN_XFORMAT", "BX_TOKEN_DISFORMAT", "BX_TOKEN_SETPMEM", + "BX_TOKEN_SYMBOLNAME", "BX_TOKEN_QUERY", "BX_TOKEN_PENDING", + "BX_TOKEN_TAKE", "BX_TOKEN_DMA", "BX_TOKEN_IRQ", "BX_TOKEN_DUMP_CPU", + "BX_TOKEN_SET_CPU", "BX_TOKEN_DIS", "BX_TOKEN_ON", "BX_TOKEN_OFF", + "BX_TOKEN_DISASSEMBLE", "BX_TOKEN_INSTRUMENT", "BX_TOKEN_START", + "BX_TOKEN_STOP", "BX_TOKEN_RESET", "BX_TOKEN_PRINT", "BX_TOKEN_LOADER", + "BX_TOKEN_STRING", "BX_TOKEN_DOIT", "BX_TOKEN_CRC", "BX_TOKEN_TRACEON", + "BX_TOKEN_TRACEOFF", "BX_TOKEN_PTIME", "BX_TOKEN_TIMEBP_ABSOLUTE", + "BX_TOKEN_TIMEBP", "BX_TOKEN_RECORD", "BX_TOKEN_PLAYBACK", + "BX_TOKEN_MODEBP", "BX_TOKEN_PRINT_STACK", "BX_TOKEN_WATCH", + "BX_TOKEN_UNWATCH", "BX_TOKEN_READ", "BX_TOKEN_WRITE", "BX_TOKEN_SHOW", + "BX_TOKEN_LOAD_SYMBOLS", "BX_TOKEN_SYMBOLS", "BX_TOKEN_LIST_SYMBOLS", + "BX_TOKEN_GLOBAL", "BX_TOKEN_WHERE", "BX_TOKEN_PRINT_STRING", + "BX_TOKEN_DIFF_MEMORY", "BX_TOKEN_SYNC_MEMORY", "BX_TOKEN_SYNC_CPU", + "BX_TOKEN_FAST_FORWARD", "BX_TOKEN_PHY_2_LOG", "BX_TOKEN_NUMERIC", + "BX_TOKEN_LONG_NUMERIC", "BX_TOKEN_INFO_ADDRESS", "BX_TOKEN_NE2000", + "BX_TOKEN_PIC", "BX_TOKEN_PAGE", "BX_TOKEN_CS", "BX_TOKEN_ES", + "BX_TOKEN_SS", "BX_TOKEN_DS", "BX_TOKEN_FS", "BX_TOKEN_GS", + "BX_TOKEN_FLAGS", "BX_TOKEN_ALWAYS_CHECK", "BX_TOKEN_TRACEREGON", + "BX_TOKEN_TRACEREGOFF", "BX_TOKEN_HELP", "BX_TOKEN_CALC", + "BX_TOKEN_VGA", "BX_TOKEN_RSHIFT", "BX_TOKEN_LSHIFT", "BX_TOKEN_IVT", + "'+'", "'-'", "'|'", "'^'", "'*'", "'/'", "'&'", "NEG", "NOT", "'\\n'", + "':'", "'='", "'!'", "'('", "')'", "$accept", "commands", "command", + "cosim_commands", "segment_register", "timebp_command", + "record_command", "playback_command", "modebp_command", "show_command", + "ptime_command", "trace_on_command", "trace_off_command", + "print_stack_command", "watch_point_command", "symbol_command", + "where_command", "print_string_command", "continue_command", + "stepN_command", "step_over_command", "set_command", "breakpoint_command", "blist_command", "slist_command", "info_command", "optional_numeric_range", "numeric_range", "dump_cpu_command", "delete_command", "bpe_command", "bpd_command", "quit_command", @@ -775,13 +799,17 @@ static const unsigned char yyr1[] = 169, 170, 170, 171, 172, 173, 174, 175, 176, 176, 176, 176, 177, 178, 179, 179, 179, 180, 181, 181, 182, 182, 182, 182, 183, 184, 185, 186, 187, 188, - 188, 189, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 191, 191, - 191, 191, 192, 192, 192, 192, 192, 192, 193, 193, - 193, 194, 194, 194, 194, 194, 194, 194, 194, 194, - 194, 194, 194, 194, 194, 194, 194, 195, 195, 195, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 189, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 191, 191, 191, 191, + 192, 192, 192, 192, 192, 192, 193, 193, 193, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 196 + 195, 195, 195, 196 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -803,19 +831,23 @@ static const unsigned char yyr2[] = 1, 1, 2, 2, 3, 3, 3, 2, 4, 3, 3, 2, 5, 3, 3, 4, 3, 2, 3, 4, 3, 3, 3, 3, 3, 3, 4, 2, 2, 3, - 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 2, 2, 3, 1, 1, 1, - 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 2, 2, 3, 5 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 2, 2, 3, 1, 1, 1, 1, 1, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 2, 2, 3, 5 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state STATE-NUM when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ -static const unsigned char yydefact[] = +static const unsigned short yydefact[] = { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -827,12 +859,12 @@ static const unsigned char yydefact[] = 4, 5, 6, 7, 9, 11, 12, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 42, 43, 44, 45, 8, 89, 0, - 90, 92, 0, 0, 104, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 182, 183, 184, 180, 181, 185, 186, - 187, 191, 192, 58, 59, 60, 61, 62, 63, 0, - 96, 0, 0, 194, 188, 189, 190, 193, 0, 209, - 207, 208, 0, 98, 0, 0, 211, 210, 0, 209, + 90, 92, 0, 0, 104, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 220, 221, 222, 218, 219, 223, 224, + 225, 229, 230, 58, 59, 60, 61, 62, 63, 0, + 96, 0, 0, 232, 226, 227, 228, 231, 0, 247, + 245, 246, 0, 98, 0, 0, 249, 248, 0, 247, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 129, 129, 129, 0, 0, 0, 0, 0, 0, 0, 0, 129, 137, 0, 0, 141, 0, @@ -841,24 +873,31 @@ static const unsigned char yydefact[] = 0, 0, 0, 0, 68, 0, 74, 0, 0, 0, 0, 78, 0, 0, 79, 0, 70, 0, 0, 0, 105, 87, 0, 48, 0, 0, 0, 0, 0, 0, - 0, 0, 157, 158, 0, 160, 0, 1, 2, 91, - 0, 0, 0, 205, 204, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 100, 223, 222, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, - 0, 0, 102, 134, 135, 136, 107, 109, 110, 108, - 111, 112, 0, 0, 0, 0, 113, 120, 123, 0, - 121, 0, 124, 127, 119, 128, 0, 0, 139, 0, - 140, 0, 143, 0, 144, 146, 0, 148, 0, 132, - 150, 151, 152, 153, 154, 155, 0, 65, 64, 66, - 67, 75, 77, 76, 0, 0, 0, 0, 69, 0, - 84, 0, 106, 88, 49, 50, 51, 52, 53, 54, - 0, 0, 0, 159, 161, 0, 93, 94, 206, 199, - 200, 195, 196, 201, 202, 197, 198, 203, 0, 224, - 217, 218, 213, 214, 219, 220, 215, 216, 221, 212, - 103, 114, 116, 117, 118, 122, 0, 115, 0, 138, - 0, 145, 149, 214, 156, 80, 82, 81, 83, 85, - 0, 0, 56, 57, 95, 97, 0, 125, 225, 142, - 86, 55, 0, 126 + 0, 0, 157, 158, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 1, 2, 91, 0, 0, + 0, 243, 242, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 100, 261, 260, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, + 102, 134, 135, 136, 107, 109, 108, 110, 111, 112, + 0, 0, 0, 0, 113, 120, 123, 0, 121, 0, + 124, 127, 119, 128, 0, 0, 139, 0, 140, 0, + 143, 0, 144, 146, 0, 148, 0, 132, 150, 151, + 152, 153, 154, 155, 0, 65, 64, 66, 67, 75, + 77, 76, 0, 0, 0, 0, 69, 0, 84, 0, + 106, 88, 49, 50, 51, 52, 53, 54, 0, 0, + 0, 160, 161, 162, 192, 168, 163, 164, 165, 166, + 167, 193, 159, 185, 190, 186, 175, 176, 187, 191, + 197, 170, 171, 172, 177, 179, 178, 181, 182, 169, + 180, 188, 189, 194, 183, 184, 173, 174, 196, 195, + 199, 0, 93, 94, 244, 237, 238, 233, 234, 239, + 240, 235, 236, 241, 0, 262, 255, 256, 251, 252, + 257, 258, 253, 254, 259, 250, 103, 114, 116, 117, + 118, 122, 0, 115, 0, 138, 0, 145, 149, 252, + 156, 80, 82, 81, 83, 85, 0, 0, 56, 57, + 95, 97, 0, 125, 263, 142, 86, 55, 0, 126 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -874,62 +913,69 @@ static const short yydefgoto[] = /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -153 +#define YYPACT_NINF -147 static const short yypact[] = { - 974, -102, -95, -87, -41, -85, 613, 385, 101, -48, - -6, -4, 324, -77, 816, 309, -3, 77, -39, 4, - 5, 461, -45, 62, 37, 38, 9, 13, 14, 45, - 49, 80, 86, 28, -94, 160, -86, -76, -64, -75, - 30, 64, 34, -32, -30, 66, 67, -46, 68, 39, - 44, -74, 677, -153, 871, -153, -153, -153, -153, -153, - -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, - -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, - -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, - -153, -153, -153, -153, -153, -153, -153, -153, -153, 53, - -153, -153, 36, -13, -153, -153, -153, -153, -153, -153, - -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, - -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, - -153, -153, -153, -153, -153, -153, -153, -153, -153, 753, - -153, 753, 753, -153, -153, -153, -153, -153, 975, 54, - -153, -153, 677, -153, 677, 677, -153, -153, 378, -153, - 677, -153, 454, 56, 57, 58, 61, 69, 73, 84, - 92, 98, 677, 677, 677, 677, 100, 102, 103, -73, - -101, 106, 107, 108, 677, -153, 43, 537, -153, 530, - 125, 109, -89, 110, -153, -153, 677, 111, -153, 71, - 112, 113, 114, 117, 118, 119, 151, -153, -153, -153, - 122, 123, 124, 135, -153, 155, -153, 156, 157, 189, - 190, -153, 192, 193, -153, 164, -153, -88, 184, 165, - -153, -153, 166, -153, 167, 168, 169, 170, 171, 172, - 202, 3, -153, -153, 173, -153, 584, -153, -153, -153, - 242, 212, 214, -153, -153, 213, 753, 753, 753, 753, - 753, 753, 753, 753, 753, 677, -153, 215, 215, 94, - 677, 677, 677, 677, 677, 677, 677, 677, 677, -153, - 677, 606, -153, -153, -153, -153, -153, -153, -153, -153, - -153, -153, 217, 219, 220, 221, -153, -153, -153, 222, - -153, 244, -153, -153, -153, -153, 223, 677, -153, 670, - -153, 246, -153, 224, -153, -153, 226, -153, 677, 989, - -153, -153, -153, -153, -153, -153, 227, -153, -153, -153, - -153, -153, -153, -153, 228, 230, 243, 245, -153, 247, - -153, 275, -153, -153, -153, -153, -153, -153, -153, -153, - 277, 248, 249, -153, -153, 280, -153, -153, -153, -153, - -153, 29, 29, 29, 29, -153, -153, -153, 720, -153, - 215, 215, -79, -79, -79, -79, 215, 215, 215, 989, - -153, -153, -153, -153, -153, -153, -36, -153, 747, -153, - 281, -153, -153, -79, -153, -153, -153, -153, -153, -153, - 282, 290, -153, -153, -153, -153, 308, -153, -153, -153, - -153, -153, 291, -153 + 976, -121, -97, -118, -38, -116, 595, 392, 113, -83, + -81, -71, 1129, -100, 804, 253, -67, -14, -33, -85, + -77, 424, 89, -20, -43, -40, -66, -52, 7, 39, + 47, 74, 77, 19, -95, -25, -86, -76, -64, -75, + 21, 61, 42, -13, 10, 81, 82, 69, 87, 57, + 64, 1075, 639, -147, 873, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, 65, + -147, -147, 66, 14, -147, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, 778, + -147, 778, 778, -147, -147, -147, -147, -147, 499, 67, + -147, -147, 639, -147, 639, 639, -147, -147, -56, -147, + 639, -147, 214, 70, 73, 85, 96, 104, 109, 110, + 112, 114, 639, 639, 639, 639, 115, 118, 147, -73, + -101, 155, 156, 158, 639, -147, 79, 563, -147, 246, + 97, 160, -94, 161, -147, -147, 639, 163, -147, 83, + 193, 195, 196, 197, 198, 199, 100, -147, -147, -147, + 200, 204, 213, 216, -147, 217, -147, 218, 219, 137, + 188, -147, 251, 252, -147, 224, -147, -93, 284, 226, + -147, -147, 227, -147, 236, 244, 248, 249, 250, 254, + 283, 45, -147, -147, 255, 285, 286, 287, 288, 289, + 318, 326, 327, 330, 341, 342, 348, 356, 357, 360, + 363, 364, 366, 375, 383, 387, 388, 389, 390, 391, + 397, 398, 407, 415, 419, 420, 421, 422, 423, 425, + 426, 455, 456, -147, 328, -147, -147, -147, 282, 457, + 458, -147, -147, 157, 778, 778, 778, 778, 778, 778, + 778, 778, 778, 639, -147, 459, 459, 106, 639, 639, + 639, 639, 639, 639, 639, 639, 639, -147, 639, 343, + -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, + 489, 497, 498, 501, -147, -147, -147, 502, -147, 490, + -147, -147, -147, -147, 503, 639, -147, 358, -147, 530, + -147, 531, -147, -147, 534, -147, 639, 556, -147, -147, + -147, -147, -147, -147, 535, -147, -147, -147, -147, -147, + -147, -147, 536, 537, 546, 554, -147, 558, -147, 587, + -147, -147, -147, -147, -147, -147, -147, -147, 590, 560, + 561, -147, -147, -147, -147, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, + -147, 562, -147, -147, -147, -147, -147, 17, 17, 17, + 17, -147, -147, -147, 385, -147, 459, 459, -79, -79, + -79, -79, 459, 459, 459, 556, -147, -147, -147, -147, + -147, -147, -24, -147, 417, -147, 568, -147, -147, -79, + -147, -147, -147, -147, -147, -147, 569, 576, -147, -147, + -147, -147, 608, -147, -147, -147, -147, -147, 578, -147 }; /* YYPGOTO[NTERM-NUM]. */ static const short yypgoto[] = { - -153, -153, 375, -153, 18, -153, -153, -153, -153, -153, - -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, - -153, -153, -153, -153, -153, -153, -152, -153, -153, -153, - -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, - -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, - 27, -126, -7, -153 + -147, -147, 335, -147, 18, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -146, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, + 27, -124, -7, -147 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -939,236 +985,262 @@ static const short yypgoto[] = #define YYTABLE_NINF -1 static const unsigned short yytable[] = { - 158, 162, 225, 229, 244, 299, 222, 223, 189, 406, - 301, 99, 215, 253, 227, 254, 255, 313, 339, 102, - 292, 293, 294, 295, 143, 192, 193, 103, 200, 201, - 202, 203, 306, 147, 228, 98, 302, 234, 235, 236, - 237, 186, 100, 216, 316, 246, 270, 271, 314, 340, - 101, 224, 104, 276, 277, 278, 251, 252, 163, 280, - 185, 226, 230, 245, 300, 240, 133, 134, 135, 136, - 137, 138, 351, 352, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 164, 407, 165, 190, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 191, - 204, 194, 195, 205, 206, 267, 207, 268, 269, 159, - 208, 209, 210, 281, 256, 257, 211, 143, 212, 143, - 143, 262, 263, 264, 213, 214, 147, 231, 147, 147, - 232, 233, 238, 239, 241, 250, 242, 150, 151, 159, - 309, 243, 307, 133, 134, 135, 136, 137, 138, 217, - 249, 266, 319, 283, 284, 285, 270, 271, 286, 272, - 318, 274, 275, 276, 277, 278, 287, 150, 151, 280, - 288, 154, 155, 133, 134, 135, 136, 137, 138, 270, - 271, 289, 272, 273, 274, 275, 276, 277, 278, 290, - 152, 311, 280, 160, 218, 291, 369, 296, 161, 297, - 298, 154, 155, 303, 304, 305, 312, 315, 317, 320, - 321, 322, 219, 220, 323, 324, 325, 326, 368, 327, - 328, 329, 341, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 330, 379, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 331, 332, 333, 334, 335, 221, 336, 337, - 388, 338, 342, 343, 344, 345, 346, 347, 348, 349, - 353, 393, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 256, 257, - 350, 258, 259, 260, 261, 262, 263, 264, 355, 356, - 386, 357, 390, 280, 381, 358, 382, 383, 384, 385, - 387, 391, 166, 392, 394, 395, 187, 396, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 397, 400, 398, 401, 399, 402, 403, 159, 105, 106, + 158, 162, 225, 229, 217, 337, 222, 223, 189, 99, + 339, 215, 351, 377, 227, 291, 98, 292, 293, 101, + 482, 104, 102, 163, 143, 164, 330, 331, 332, 333, + 103, 192, 193, 147, 228, 165, 340, 185, 344, 190, + 100, 186, 216, 352, 378, 284, 308, 309, 191, 218, + 354, 224, 194, 314, 315, 316, 234, 235, 204, 318, + 195, 226, 230, 205, 338, 240, 206, 219, 220, 308, + 309, 207, 310, 311, 312, 313, 314, 315, 316, 236, + 237, 317, 318, 289, 290, 208, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 221, 483, 389, 390, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 294, 295, 209, 305, 210, 306, 307, 300, + 301, 302, 212, 319, 211, 213, 214, 143, 231, 143, + 143, 159, 200, 201, 202, 203, 147, 232, 147, 147, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 233, + 347, 133, 134, 135, 136, 137, 138, 238, 239, 150, + 151, 159, 357, 241, 242, 133, 134, 135, 136, 137, + 138, 243, 287, 349, 304, 288, 364, 321, 308, 309, + 322, 310, 356, 312, 313, 314, 315, 316, 345, 150, + 151, 318, 323, 154, 155, 133, 134, 135, 136, 137, + 138, 308, 309, 324, 310, 311, 312, 313, 314, 315, + 316, 325, 152, 372, 318, 160, 326, 327, 445, 328, + 161, 329, 334, 154, 155, 335, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 294, 295, 336, 296, 297, 298, 299, 300, + 301, 302, 341, 342, 373, 343, 444, 350, 353, 434, + 355, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 187, 455, 143, 143, 143, 143, 143, 143, 143, 143, + 143, 147, 147, 147, 147, 147, 147, 147, 147, 147, + 358, 159, 359, 360, 361, 362, 363, 365, 464, 308, + 309, 366, 310, 311, 312, 313, 314, 315, 316, 469, + 367, 320, 318, 368, 369, 370, 371, 374, 375, 150, + 151, 376, 379, 380, 381, 133, 134, 135, 136, 137, + 138, 308, 309, 382, 310, 311, 312, 313, 314, 315, + 316, 383, 152, 348, 318, 384, 385, 386, 431, 286, + 188, 387, 391, 154, 155, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 388, 392, 393, 394, 395, 396, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 308, 309, 397, 310, 311, 312, 313, + 314, 315, 316, 398, 399, 430, 318, 400, 308, 309, + 149, 310, 311, 312, 313, 314, 315, 316, 401, 402, + 456, 318, 196, 308, 309, 403, 310, 311, 312, 313, + 314, 315, 316, 404, 405, 465, 318, 406, 150, 151, + 407, 408, 159, 409, 133, 134, 135, 136, 137, 138, + 308, 309, 410, 310, 311, 312, 313, 314, 315, 316, + 411, 152, 481, 318, 412, 413, 414, 415, 416, 153, + 150, 151, 154, 155, 417, 418, 133, 134, 135, 136, + 137, 138, 308, 309, 419, 310, 311, 312, 313, 314, + 315, 316, 420, 152, 484, 318, 421, 422, 423, 424, + 425, 0, 426, 427, 154, 155, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 428, 429, 432, 433, 462, 318, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 412, 150, 151, 404, 409, 410, - 179, 133, 134, 135, 136, 137, 138, 411, 413, 248, - 0, 0, 0, 180, 181, 0, 0, 0, 152, 0, - 0, 0, 182, 0, 0, 0, 188, 0, 183, 154, - 155, 184, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 149, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 0, 150, 151, 0, 0, 0, 0, 133, 134, 135, - 136, 137, 138, 270, 271, 0, 272, 273, 274, 275, - 276, 277, 278, 0, 152, 279, 280, 0, 0, 196, - 0, 0, 153, 0, 0, 154, 155, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 159, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 0, 150, 151, 0, - 0, 0, 0, 133, 134, 135, 136, 137, 138, 270, - 271, 0, 272, 273, 274, 275, 276, 277, 278, 0, - 152, 282, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 154, 155, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 159, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 0, 150, 151, 0, 0, 0, 0, 133, - 134, 135, 136, 137, 138, 270, 271, 0, 272, 273, - 274, 275, 276, 277, 278, 0, 152, 310, 280, 0, - 0, 0, 0, 0, 308, 0, 0, 154, 155, 0, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 0, 0, 0, 270, - 271, 0, 272, 273, 274, 275, 276, 277, 278, 131, - 132, 354, 280, 0, 0, 133, 134, 135, 136, 137, - 138, 270, 271, 0, 272, 273, 274, 275, 276, 277, - 278, 0, 139, 380, 280, 0, 0, 0, 0, 0, - 140, 0, 0, 141, 142, 159, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 0, 150, 151, 0, 0, 0, 0, 133, - 134, 135, 136, 137, 138, 270, 271, 0, 272, 273, - 274, 275, 276, 277, 278, 0, 152, 389, 280, 0, - 0, 0, 0, 0, 0, 0, 0, 154, 155, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 270, 271, 0, 272, 273, - 274, 275, 276, 277, 278, 0, 0, 405, 280, 131, - 132, 0, 0, 0, 0, 133, 134, 135, 136, 137, - 138, 247, 270, 271, 0, 272, 273, 274, 275, 276, - 277, 278, 139, 0, 408, 280, 0, 0, 0, 0, - 0, 0, 0, 141, 142, 0, 0, 0, 0, 0, - 1, 2, 3, 0, 4, 0, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 0, 14, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, - 16, 0, 17, 0, 18, 0, 0, 19, 20, 0, - 0, 0, 21, 22, 0, 0, 0, 0, 23, 0, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 0, 0, 37, 38, 0, 39, 0, - 40, 41, 42, 43, 44, 45, 46, 0, 0, 47, + 127, 128, 129, 130, 294, 295, 457, 296, 297, 298, + 299, 300, 301, 302, 458, 459, 466, 303, 460, 461, + 463, 159, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 467, 150, + 151, 468, 470, 471, 472, 133, 134, 135, 136, 137, + 138, 308, 309, 473, 310, 311, 312, 313, 314, 315, + 316, 474, 152, 476, 318, 475, 477, 478, 479, 480, + 346, 131, 132, 154, 155, 485, 486, 133, 134, 135, + 136, 137, 138, 487, 488, 489, 0, 159, 0, 0, + 0, 0, 0, 0, 139, 0, 0, 0, 0, 0, + 0, 0, 140, 0, 0, 141, 142, 0, 0, 0, + 0, 0, 0, 0, 0, 150, 151, 0, 0, 0, + 0, 133, 134, 135, 136, 137, 138, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 152, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 154, + 155, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 49, 50, 51, 52, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 2, 3, 0, 4, 53, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 16, 0, 17, 0, 18, 0, 0, - 19, 20, 0, 0, 0, 21, 22, 0, 0, 0, - 0, 23, 0, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 0, 0, 37, 38, - 0, 39, 0, 40, 41, 42, 43, 44, 45, 46, - 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 48, 49, 50, 51, 52, 0, 0, - 256, 257, 0, 258, 259, 260, 261, 262, 263, 264, - 0, 53, 0, 265, 270, 271, 0, 272, 273, 274, - 275, 276, 277, 278, 0, 0, 0, 280 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 285, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 131, 132, 0, 0, 0, 0, + 133, 134, 135, 136, 137, 138, 0, 0, 0, 0, + 0, 0, 1, 2, 3, 0, 4, 139, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 141, 142, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, + 0, 0, 16, 0, 17, 0, 18, 0, 0, 19, + 20, 0, 0, 0, 21, 22, 0, 0, 0, 0, + 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 0, 0, 37, 38, 0, + 39, 0, 40, 41, 42, 43, 44, 45, 46, 0, + 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 48, 49, 50, 51, 52, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 2, 3, 0, 4, + 53, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 16, 0, 17, 0, 18, + 0, 0, 19, 20, 0, 0, 0, 21, 22, 0, + 0, 0, 0, 23, 0, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 0, 0, + 37, 38, 0, 39, 0, 40, 41, 42, 43, 44, + 45, 46, 0, 0, 47, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 49, 50, 51, 52, + 0, 0, 0, 0, 244, 245, 246, 0, 247, 0, + 248, 249, 250, 53, 251, 252, 253, 254, 255, 256, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 257, 0, 0, 258, 0, 0, 0, 0, 0, + 0, 259, 260, 0, 0, 0, 261, 262, 0, 0, + 0, 0, 0, 263, 0, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 166, 0, 276, + 277, 0, 278, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 279, 280, 281, 282, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 283, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 180, 181, + 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, + 0, 0, 0, 183, 0, 0, 184 }; static const short yycheck[] = { - 7, 8, 78, 78, 78, 78, 92, 93, 15, 45, - 111, 106, 106, 139, 78, 141, 142, 106, 106, 60, - 172, 173, 174, 175, 6, 64, 65, 68, 73, 74, - 75, 76, 184, 6, 98, 137, 137, 69, 70, 69, - 70, 14, 137, 137, 196, 52, 125, 126, 137, 137, - 137, 137, 137, 132, 133, 134, 69, 70, 106, 138, - 137, 137, 137, 137, 137, 47, 112, 113, 114, 115, - 116, 117, 69, 70, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 106, 137, 106, 106, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 62, - 78, 137, 137, 106, 106, 152, 137, 154, 155, 78, - 137, 137, 107, 160, 125, 126, 107, 139, 78, 141, - 142, 132, 133, 134, 78, 137, 139, 137, 141, 142, - 106, 137, 106, 106, 106, 139, 137, 106, 107, 78, - 187, 137, 139, 112, 113, 114, 115, 116, 117, 29, - 137, 137, 199, 137, 137, 137, 125, 126, 137, 128, - 129, 130, 131, 132, 133, 134, 137, 106, 107, 138, - 137, 140, 141, 112, 113, 114, 115, 116, 117, 125, - 126, 137, 128, 129, 130, 131, 132, 133, 134, 137, - 129, 106, 138, 132, 74, 137, 142, 137, 137, 137, - 137, 140, 141, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 92, 93, 137, 137, 137, 106, 265, 137, - 137, 137, 78, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 137, 280, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 137, 137, 137, 106, 106, 137, 106, 106, - 307, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 318, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 125, 126, - 138, 128, 129, 130, 131, 132, 133, 134, 106, 137, - 106, 137, 106, 138, 137, 142, 137, 137, 137, 137, - 137, 137, 38, 137, 137, 137, 57, 137, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 137, 106, 137, 106, 137, 137, 137, 78, 3, 4, + 7, 8, 78, 78, 29, 78, 92, 93, 15, 106, + 111, 106, 106, 106, 78, 139, 137, 141, 142, 137, + 44, 137, 60, 106, 6, 106, 172, 173, 174, 175, + 68, 64, 65, 6, 98, 106, 137, 137, 184, 106, + 137, 14, 137, 137, 137, 52, 125, 126, 62, 74, + 196, 137, 137, 132, 133, 134, 69, 70, 78, 138, + 137, 137, 137, 106, 137, 47, 106, 92, 93, 125, + 126, 137, 128, 129, 130, 131, 132, 133, 134, 69, + 70, 137, 138, 69, 70, 137, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 137, 137, 69, 70, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 125, 126, 137, 152, 107, 154, 155, 132, + 133, 134, 78, 160, 107, 78, 137, 139, 137, 141, + 142, 78, 73, 74, 75, 76, 139, 106, 141, 142, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 137, + 187, 112, 113, 114, 115, 116, 117, 106, 106, 106, + 107, 78, 199, 106, 137, 112, 113, 114, 115, 116, + 117, 137, 137, 106, 137, 139, 106, 137, 125, 126, + 137, 128, 129, 130, 131, 132, 133, 134, 139, 106, + 107, 138, 137, 140, 141, 112, 113, 114, 115, 116, + 117, 125, 126, 137, 128, 129, 130, 131, 132, 133, + 134, 137, 129, 106, 138, 132, 137, 137, 142, 137, + 137, 137, 137, 140, 141, 137, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 125, 126, 137, 128, 129, 130, 131, 132, + 133, 134, 137, 137, 106, 137, 303, 137, 137, 142, + 137, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 57, 318, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 137, 78, 137, 137, 137, 137, 137, 137, 345, 125, + 126, 137, 128, 129, 130, 131, 132, 133, 134, 356, + 137, 137, 138, 137, 137, 137, 137, 106, 106, 106, + 107, 137, 78, 137, 137, 112, 113, 114, 115, 116, + 117, 125, 126, 137, 128, 129, 130, 131, 132, 133, + 134, 137, 129, 137, 138, 137, 137, 137, 106, 54, + 137, 137, 137, 140, 141, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 138, 137, 137, 137, 137, 137, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 125, 126, 137, 128, 129, 130, 131, + 132, 133, 134, 137, 137, 137, 138, 137, 125, 126, + 78, 128, 129, 130, 131, 132, 133, 134, 137, 137, + 137, 138, 58, 125, 126, 137, 128, 129, 130, 131, + 132, 133, 134, 137, 137, 137, 138, 137, 106, 107, + 137, 137, 78, 137, 112, 113, 114, 115, 116, 117, + 125, 126, 137, 128, 129, 130, 131, 132, 133, 134, + 137, 129, 137, 138, 137, 137, 137, 137, 137, 137, + 106, 107, 140, 141, 137, 137, 112, 113, 114, 115, + 116, 117, 125, 126, 137, 128, 129, 130, 131, 132, + 133, 134, 137, 129, 137, 138, 137, 137, 137, 137, + 137, -1, 137, 137, 140, 141, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 137, 137, 137, 137, 106, 138, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 106, 106, 107, 137, 137, 137, - 96, 112, 113, 114, 115, 116, 117, 137, 137, 54, - -1, -1, -1, 109, 110, -1, -1, -1, 129, -1, - -1, -1, 118, -1, -1, -1, 137, -1, 124, 140, - 141, 127, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 78, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - -1, 106, 107, -1, -1, -1, -1, 112, 113, 114, - 115, 116, 117, 125, 126, -1, 128, 129, 130, 131, - 132, 133, 134, -1, 129, 137, 138, -1, -1, 58, + 25, 26, 27, 28, 125, 126, 137, 128, 129, 130, + 131, 132, 133, 134, 137, 137, 106, 138, 137, 137, + 137, 78, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 137, 106, + 107, 137, 137, 137, 137, 112, 113, 114, 115, 116, + 117, 125, 126, 137, 128, 129, 130, 131, 132, 133, + 134, 137, 129, 106, 138, 137, 106, 137, 137, 137, + 137, 106, 107, 140, 141, 137, 137, 112, 113, 114, + 115, 116, 117, 137, 106, 137, -1, 78, -1, -1, + -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, 137, -1, -1, 140, 141, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 78, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, -1, 106, 107, -1, - -1, -1, -1, 112, 113, 114, 115, 116, 117, 125, - 126, -1, 128, 129, 130, 131, 132, 133, 134, -1, - 129, 137, 138, -1, -1, -1, -1, -1, -1, -1, - -1, 140, 141, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 78, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, -1, 106, 107, -1, -1, -1, -1, 112, - 113, 114, 115, 116, 117, 125, 126, -1, 128, 129, - 130, 131, 132, 133, 134, -1, 129, 137, 138, -1, - -1, -1, -1, -1, 137, -1, -1, 140, 141, -1, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, -1, -1, -1, 125, - 126, -1, 128, 129, 130, 131, 132, 133, 134, 106, - 107, 137, 138, -1, -1, 112, 113, 114, 115, 116, - 117, 125, 126, -1, 128, 129, 130, 131, 132, 133, - 134, -1, 129, 137, 138, -1, -1, -1, -1, -1, - 137, -1, -1, 140, 141, 78, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, -1, 106, 107, -1, -1, -1, -1, 112, - 113, 114, 115, 116, 117, 125, 126, -1, 128, 129, - 130, 131, 132, 133, 134, -1, 129, 137, 138, -1, - -1, -1, -1, -1, -1, -1, -1, 140, 141, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 125, 126, -1, 128, 129, - 130, 131, 132, 133, 134, -1, -1, 137, 138, 106, - 107, -1, -1, -1, -1, 112, 113, 114, 115, 116, - 117, 0, 125, 126, -1, 128, 129, 130, 131, 132, - 133, 134, 129, -1, 137, 138, -1, -1, -1, -1, - -1, -1, -1, 140, 141, -1, -1, -1, -1, -1, - 29, 30, 31, -1, 33, -1, 35, 36, 37, 38, - 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 56, -1, -1, - 59, -1, 61, -1, 63, -1, -1, 66, 67, -1, - -1, -1, 71, 72, -1, -1, -1, -1, 77, -1, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, -1, -1, 94, 95, -1, 97, -1, - 99, 100, 101, 102, 103, 104, 105, -1, -1, 108, + -1, -1, -1, -1, -1, 106, 107, -1, -1, -1, + -1, 112, 113, 114, 115, 116, 117, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 129, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 140, + 141, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 119, 120, 121, 122, 123, -1, -1, -1, -1, -1, - -1, -1, -1, 29, 30, 31, -1, 33, 137, 35, - 36, 37, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 56, -1, -1, 59, -1, 61, -1, 63, -1, -1, - 66, 67, -1, -1, -1, 71, 72, -1, -1, -1, - -1, 77, -1, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, -1, -1, 94, 95, - -1, 97, -1, 99, 100, 101, 102, 103, 104, 105, - -1, -1, 108, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 119, 120, 121, 122, 123, -1, -1, - 125, 126, -1, 128, 129, 130, 131, 132, 133, 134, - -1, 137, -1, 138, 125, 126, -1, 128, 129, 130, - 131, 132, 133, 134, -1, -1, -1, 138 + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 106, 107, -1, -1, -1, -1, + 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, + -1, -1, 29, 30, 31, -1, 33, 129, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 140, 141, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 56, + -1, -1, 59, -1, 61, -1, 63, -1, -1, 66, + 67, -1, -1, -1, 71, 72, -1, -1, -1, -1, + 77, -1, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, -1, -1, 94, 95, -1, + 97, -1, 99, 100, 101, 102, 103, 104, 105, -1, + -1, 108, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 119, 120, 121, 122, 123, -1, -1, -1, + -1, -1, -1, -1, -1, 29, 30, 31, -1, 33, + 137, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 56, -1, -1, 59, -1, 61, -1, 63, + -1, -1, 66, 67, -1, -1, -1, 71, 72, -1, + -1, -1, -1, 77, -1, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, -1, -1, + 94, 95, -1, 97, -1, 99, 100, 101, 102, 103, + 104, 105, -1, -1, 108, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 119, 120, 121, 122, 123, + -1, -1, -1, -1, 29, 30, 31, -1, 33, -1, + 35, 36, 37, 137, 39, 40, 41, 42, 43, 44, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 56, -1, -1, 59, -1, -1, -1, -1, -1, + -1, 66, 67, -1, -1, -1, 71, 72, -1, -1, + -1, -1, -1, 78, -1, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 38, -1, 94, + 95, -1, 97, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 120, 121, 122, 123, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 137, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 96, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, + -1, -1, -1, -1, -1, -1, -1, 118, -1, -1, + -1, -1, -1, 124, -1, -1, 127 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1176,7 +1248,7 @@ static const short yycheck[] = static const unsigned char yystos[] = { 0, 29, 30, 31, 33, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 45, 56, 59, 61, 63, 66, + 40, 41, 42, 43, 44, 56, 59, 61, 63, 66, 67, 71, 72, 77, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 94, 95, 97, 99, 100, 101, 102, 103, 104, 105, 108, 119, 120, @@ -1199,24 +1271,31 @@ static const unsigned char yystos[] = 107, 107, 78, 78, 137, 106, 137, 29, 74, 92, 93, 137, 92, 93, 137, 78, 137, 78, 98, 78, 137, 137, 106, 137, 69, 70, 69, 70, 106, 106, - 147, 106, 137, 137, 78, 137, 195, 0, 145, 137, - 139, 69, 70, 194, 194, 194, 125, 126, 128, 129, - 130, 131, 132, 133, 134, 138, 137, 195, 195, 195, - 125, 126, 128, 129, 130, 131, 132, 133, 134, 137, - 138, 195, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 169, 169, 169, 169, 137, 137, 137, 78, - 137, 111, 137, 137, 137, 137, 169, 139, 137, 195, - 137, 106, 137, 106, 137, 137, 169, 137, 129, 195, - 137, 137, 137, 137, 137, 137, 106, 137, 137, 137, - 137, 137, 137, 137, 106, 106, 106, 106, 137, 106, - 137, 78, 137, 137, 137, 137, 137, 137, 137, 137, - 138, 69, 70, 137, 137, 106, 137, 137, 142, 194, - 194, 194, 194, 194, 194, 194, 194, 194, 195, 142, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 137, 137, 137, 137, 137, 137, 106, 137, 195, 137, - 106, 137, 137, 195, 137, 137, 137, 137, 137, 137, - 106, 106, 137, 137, 137, 137, 45, 137, 137, 137, - 137, 137, 106, 137 + 147, 106, 137, 137, 29, 30, 31, 33, 35, 36, + 37, 39, 40, 41, 42, 43, 44, 56, 59, 66, + 67, 71, 72, 78, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 94, 95, 97, 120, + 121, 122, 123, 137, 195, 0, 145, 137, 139, 69, + 70, 194, 194, 194, 125, 126, 128, 129, 130, 131, + 132, 133, 134, 138, 137, 195, 195, 195, 125, 126, + 128, 129, 130, 131, 132, 133, 134, 137, 138, 195, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 169, 169, 169, 169, 137, 137, 137, 78, 137, 111, + 137, 137, 137, 137, 169, 139, 137, 195, 137, 106, + 137, 106, 137, 137, 169, 137, 129, 195, 137, 137, + 137, 137, 137, 137, 106, 137, 137, 137, 137, 137, + 137, 137, 106, 106, 106, 106, 137, 106, 137, 78, + 137, 137, 137, 137, 137, 137, 137, 137, 138, 69, + 70, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 137, 106, 137, 137, 142, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 195, 142, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 137, 137, 137, 137, + 137, 137, 106, 137, 195, 137, 106, 137, 137, 195, + 137, 137, 137, 137, 137, 137, 106, 106, 137, 137, + 137, 137, 44, 137, 137, 137, 137, 137, 106, 137 }; #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) @@ -2301,7 +2380,7 @@ yyreduce: case 109: #line 570 "parser.y" { - bx_dbg_info_program_command(); + bx_dbg_info_registers_command(BX_INFO_CPU_REGS); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; @@ -2309,7 +2388,7 @@ yyreduce: case 110: #line 575 "parser.y" { - bx_dbg_info_registers_command(BX_INFO_CPU_REGS); + bx_dbg_info_registers_command(BX_INFO_FPU_REGS); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; @@ -2317,7 +2396,7 @@ yyreduce: case 111: #line 580 "parser.y" { - bx_dbg_info_registers_command(BX_INFO_FPU_REGS); + bx_dbg_info_registers_command(BX_INFO_SSE_REGS); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; @@ -2325,7 +2404,7 @@ yyreduce: case 112: #line 585 "parser.y" { - bx_dbg_info_registers_command(BX_INFO_CPU_REGS | BX_INFO_FPU_REGS); + bx_dbg_info_registers_command(BX_INFO_CPU_REGS | BX_INFO_FPU_REGS | BX_INFO_SSE_REGS); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; @@ -2710,7 +2789,7 @@ yyreduce: case 159: #line 896 "parser.y" { - bx_dbg_help_command(yyvsp[-1].sval); + dbg_printf("q|quit|exit - quit debugger and emulator execution\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); } break; @@ -2718,211 +2797,567 @@ yyreduce: case 160: #line 901 "parser.y" { - bx_dbg_help_command(0); - free(yyvsp[-1].sval); + dbg_printf("c|cont|continue - continue executing\n"); + free(yyvsp[-2].sval);free(yyvsp[-1].sval); } break; case 161: -#line 909 "parser.y" +#line 906 "parser.y" + { + dbg_printf("s|step|stepi [count] - execute #count instructions (default is 1 instruction)\n"); + free(yyvsp[-2].sval);free(yyvsp[-1].sval); + } + break; + + case 162: +#line 911 "parser.y" + { + dbg_printf("n|next|p - execute instruction stepping over subroutines\n"); + free(yyvsp[-2].sval);free(yyvsp[-1].sval); + } + break; + + case 163: +#line 916 "parser.y" + { + dbg_printf("vb|vbreak - set a virtual address instruction breakpoint\n"); + free(yyvsp[-2].sval);free(yyvsp[-1].sval); + } + break; + + case 164: +#line 921 "parser.y" + { + dbg_printf("p|pb|break|pbreak - set a physical address instruction breakpoint\n"); + free(yyvsp[-2].sval);free(yyvsp[-1].sval); + } + break; + + case 165: +#line 926 "parser.y" + { + dbg_printf("d|del|delete - delete a breakpoint\n"); + free(yyvsp[-2].sval);free(yyvsp[-1].sval); + } + break; + + case 166: +#line 931 "parser.y" + { + dbg_printf("bpe - enable a breakpoint\n"); + free(yyvsp[-2].sval);free(yyvsp[-1].sval); + } + break; + + case 167: +#line 936 "parser.y" + { + dbg_printf("bpd - disable a breakpoint\n"); + free(yyvsp[-2].sval);free(yyvsp[-1].sval); + } + break; + + case 168: +#line 941 "parser.y" + { + dbg_printf("blist - list all breakpoints (same as 'info break')\n"); + free(yyvsp[-2].sval);free(yyvsp[-1].sval); + } + break; + + case 169: +#line 946 "parser.y" + { + dbg_printf("modebp - toggles mode switch breakpoint\n"); + free(yyvsp[-2].sval);free(yyvsp[-1].sval); + } + break; + + case 170: +#line 951 "parser.y" + { + dbg_printf("crc - show CRC32 for physical memory range addr1..addr2\n"); + free(yyvsp[-2].sval);free(yyvsp[-1].sval); + } + break; + + case 171: +#line 956 "parser.y" + { + dbg_printf("trace-on - disassemble every executed instruction\n"); + free(yyvsp[-2].sval);free(yyvsp[-1].sval); + } + break; + + case 172: +#line 961 "parser.y" + { + dbg_printf("trace-off - disable instruction tracing\n"); + free(yyvsp[-2].sval);free(yyvsp[-1].sval); + } + break; + + case 173: +#line 966 "parser.y" + { + dbg_printf("trace-reg-on - print all registers every executed instruction\n"); + free(yyvsp[-2].sval);free(yyvsp[-1].sval); + } + break; + + case 174: +#line 971 "parser.y" + { + dbg_printf("trace-reg-off - disable registers state tracing\n"); + free(yyvsp[-2].sval);free(yyvsp[-1].sval); + } + break; + + case 175: +#line 976 "parser.y" + { + dbg_printf("dump_cpu - dump complete cpu state\n"); + free(yyvsp[-2].sval);free(yyvsp[-1].sval); + } + break; + + case 176: +#line 981 "parser.y" + { + dbg_printf("set_cpu - set complete cpu state\n"); + free(yyvsp[-2].sval);free(yyvsp[-1].sval); + } + break; + + case 177: +#line 986 "parser.y" + { + dbg_printf("ptime - print current time (number of ticks since start of simulation)\n"); + free(yyvsp[-2].sval);free(yyvsp[-1].sval); + } + break; + + case 178: +#line 991 "parser.y" + { + dbg_printf("sb - insert a time breakpoint delta instructions into the future\n"); + free(yyvsp[-2].sval);free(yyvsp[-1].sval); + } + break; + + case 179: +#line 996 "parser.y" + { + dbg_printf("sba