First stab at Bochs 2.2.6 upgrade (not yet tested).
[pintos-anon] / src / misc / bochs-2.2.6-big-endian.patch
1 diff -urp bochs-2.2.6/gdbstub.cc bochs-2.2.6.orig/gdbstub.cc
2 --- bochs-2.2.6/gdbstub.cc      2006-04-03 13:47:39.000000000 -0700
3 +++ bochs-2.2.6.orig/gdbstub.cc 2006-01-17 09:15:29.000000000 -0800
4 @@ -672,36 +672,35 @@ static void debug_loop(void)
5              
6            case 'g':
7  #if !BX_SUPPORT_X86_64
8 -            WriteHostDWordToLittleEndian(registers + 0, EAX);
9 -            WriteHostDWordToLittleEndian(registers + 1, ECX);
10 -            WriteHostDWordToLittleEndian(registers + 2, EDX);
11 -            WriteHostDWordToLittleEndian(registers + 3, EBX);
12 -            WriteHostDWordToLittleEndian(registers + 4, ESP);
13 -            WriteHostDWordToLittleEndian(registers + 5, EBP);
14 -            WriteHostDWordToLittleEndian(registers + 6, ESI);
15 -            WriteHostDWordToLittleEndian(registers + 7, EDI);
16 +            registers[0] = EAX;
17 +            registers[1] = ECX;
18 +            registers[2] = EDX;
19 +            registers[3] = EBX;
20 +            registers[4] = ESP;
21 +            registers[5] = EBP;
22 +            registers[6] = ESI;
23 +            registers[7] = EDI;
24              if (last_stop_reason == GDBSTUB_EXECUTION_BREAKPOINT)
25                {
26 -                WriteHostDWordToLittleEndian(registers + 8, EIP + 1);
27 +                 registers[8] = EIP + 1;
28                }
29              else
30                {
31 -                WriteHostDWordToLittleEndian(registers + 8, EIP);
32 +                 registers[8] = EIP;
33                }
34 -            WriteHostDWordToLittleEndian(registers + 9,
35 -                                         BX_CPU_THIS_PTR read_eflags());
36 -            WriteHostDWordToLittleEndian(registers + 10,
37 -              BX_CPU_THIS_PTR sregs[BX_SEG_REG_CS].selector.value);
38 -            WriteHostDWordToLittleEndian(registers + 11,
39 -              BX_CPU_THIS_PTR sregs[BX_SEG_REG_SS].selector.value);
40 -            WriteHostDWordToLittleEndian(registers + 12,
41 -              BX_CPU_THIS_PTR sregs[BX_SEG_REG_DS].selector.value);
42 -            WriteHostDWordToLittleEndian(registers + 13,
43 -              BX_CPU_THIS_PTR sregs[BX_SEG_REG_ES].selector.value);
44 -            WriteHostDWordToLittleEndian(registers + 14,
45 -              BX_CPU_THIS_PTR sregs[BX_SEG_REG_FS].selector.value);
46 -            WriteHostDWordToLittleEndian(registers + 15,
47 -              BX_CPU_THIS_PTR sregs[BX_SEG_REG_GS].selector.value);
48 +            registers[9] = BX_CPU_THIS_PTR read_eflags();
49 +            registers[10] = 
50 +              BX_CPU_THIS_PTR sregs[BX_SEG_REG_CS].selector.value;
51 +            registers[11] = 
52 +              BX_CPU_THIS_PTR sregs[BX_SEG_REG_SS].selector.value;
53 +            registers[12] = 
54 +              BX_CPU_THIS_PTR sregs[BX_SEG_REG_DS].selector.value;
55 +            registers[13] = 
56 +              BX_CPU_THIS_PTR sregs[BX_SEG_REG_ES].selector.value;
57 +            registers[14] = 
58 +              BX_CPU_THIS_PTR sregs[BX_SEG_REG_FS].selector.value;
59 +            registers[15] = 
60 +              BX_CPU_THIS_PTR sregs[BX_SEG_REG_GS].selector.value;
61              mem2hex((char *)registers, obuf, NUMREGSBYTES);
62  #else
63  #define PUTREG(buf, val, len) do { \