~ubuntu-branches/debian/sid/mame/sid

« back to all changes in this revision

Viewing changes to mess/src/emu/cpu/am29000/am29000.c

  • Committer: Package Import Robot
  • Author(s): Jordi Mallach, Jordi Mallach, Emmanuel Kasper
  • Date: 2011-12-19 22:56:27 UTC
  • mfrom: (0.1.2)
  • Revision ID: package-import@ubuntu.com-20111219225627-ub5oga1oys4ogqzm
Tags: 0.144-1
[ Jordi Mallach ]
* Fix syntax errors in DEP5 copyright file (lintian).
* Use a versioned copyright Format specification field.
* Update Vcs-* URLs.
* Move transitional packages to the new metapackages section, and make
  them priority extra.
* Remove references to GNU/Linux and MESS sources from copyright.
* Add build variables for s390x.
* Use .xz tarballs as it cuts 4MB for the upstream sources.
* Add nplayers.ini as a patch. Update copyright file to add CC-BY-SA-3.0.

[ Emmanuel Kasper ]
* New upstream release. Closes: #651538.
* Add Free Desktop compliant png icons of various sizes taken from
  the hydroxygen iconset
* Mess is now built from a new source package, to avoid possible source
  incompatibilities between mame and the mess overlay.
* Mame-tools are not built from the mame source package anymore, but
  from the mess source package

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/***************************************************************************
2
 
 
3
 
    am29000.c
4
 
    Core implementation of the Am29000 emulator
5
 
 
6
 
    Written by Philip Bennett
7
 
 
8
 
    Features missing:
9
 
    * MMU
10
 
    * Some instructions
11
 
    * Various exceptions
12
 
 
13
 
***************************************************************************/
14
 
 
15
 
#include "emu.h"
16
 
#include "debugger.h"
17
 
#include "am29000.h"
18
 
 
19
 
 
20
 
/***************************************************************************
21
 
    CONSTANTS
22
 
***************************************************************************/
23
 
 
24
 
#define MAX_EXCEPTIONS                          (4)
25
 
 
26
 
#define PFLAG_FETCH_EN                          (1 << 0)
27
 
#define PFLAG_DECODE_EN                         (1 << 1)
28
 
#define PFLAG_EXECUTE_EN                        (1 << 2)
29
 
#define PFLAG_WRITEBACK_EN                      (1 << 3)
30
 
#define PFLAG_IRQ                                       (1 << 4)
31
 
#define PFLAG_LOADSTORE                         (1 << 5)
32
 
#define PFLAG_MULTI_LOADSTORE           (1 << 6)
33
 
#define PFLAG_JUMP                                      (1 << 7)
34
 
#define PFLAG_JUMP2                                     (1 << 8)
35
 
#define PFLAG_IRET                                      (1 << 9)
36
 
#define PFLAG_TIMER_LOADED                      (1 << 10)
37
 
 
38
 
#define PFLAG_RA_DEPENDENCY                     (1 << 26)
39
 
#define PFLAG_RB_DEPENDENCY                     (1 << 27)
40
 
 
41
 
#define PFLAG_MEM_MULTIPLE                      (1 << 29)
42
 
#define PFLAG_REG_WRITEBACK                     (1 << 30)
43
 
#define PFLAG_MEM_WRITEBACK                     (1 << 31)
44
 
 
45
 
#define MMU_PROGRAM_ACCESS                      (0)
46
 
#define MMU_DATA_ACCESS                         (1)
47
 
 
48
 
#define FREEZE_MODE                                     (am29000->cps & CPS_FZ)
49
 
#define SUPERVISOR_MODE                         (am29000->cps & CPS_SM)
50
 
#define USER_MODE                                       (~am29000->cps & CPS_SM)
51
 
#define REGISTER_IS_PROTECTED(x)        (am29000->rbp & (1 << ((x) >> 4)))
52
 
 
53
 
#define INST_RB_FIELD(x)                        ((x) & 0xff)
54
 
#define INST_RA_FIELD(x)                        (((x) >> 8) & 0xff)
55
 
#define INST_RC_FIELD(x)                        (((x) >> 16) & 0xff)
56
 
#define INST_SA_FIELD(x)                        (((x) >> 8) & 0xff)
57
 
 
58
 
#define FIELD_RA                                        0
59
 
#define FIELD_RB                                        1
60
 
#define FIELD_RC                                        2
61
 
 
62
 
#define SIGNAL_EXCEPTION(x)                     (signal_exception(am29000, x))
63
 
 
64
 
 
65
 
#define GET_ALU_FC                                      ((am29000->alu >> ALU_FC_SHIFT) & ALU_FC_MASK)
66
 
#define GET_ALU_BP                                      ((am29000->alu >> ALU_BP_SHIFT) & ALU_BP_MASK)
67
 
#define GET_CHC_CR                                      ((am29000->chc >> CHC_CR_SHIFT) & CHC_CR_MASK)
68
 
 
69
 
#define SET_ALU_FC(x)                           do { am29000->alu &= ~(ALU_FC_MASK << ALU_FC_SHIFT); am29000->alu |= ((x) & ALU_FC_MASK) << ALU_FC_SHIFT; } while(0)
70
 
#define SET_ALU_BP(x)                           do { am29000->alu &= ~(ALU_BP_MASK << ALU_BP_SHIFT); am29000->alu |= ((x) & ALU_BP_MASK) << ALU_BP_SHIFT; } while(0)
71
 
#define SET_CHC_CR(x)                           do { am29000->chc &= ~(CHC_CR_MASK << CHC_CR_SHIFT); am29000->chc |= ((x) & CHC_CR_MASK) << CHC_CR_SHIFT; } while(0)
72
 
 
73
 
 
74
 
/***************************************************************************
75
 
    STRUCTURES & TYPEDEFS
76
 
***************************************************************************/
77
 
 
78
 
typedef struct _am29000_state
79
 
{
80
 
        INT32                   icount;
81
 
        UINT32                  pc;
82
 
 
83
 
        /* General purpose */
84
 
        UINT32                  r[256];         // TODO: There's only 192 implemented!
85
 
 
86
 
        /* TLB */
87
 
        UINT32                  tlb[128];
88
 
 
89
 
        /* Protected SPRs */
90
 
        UINT32                  vab;
91
 
        UINT32                  ops;
92
 
        UINT32                  cps;
93
 
        UINT32                  cfg;
94
 
        UINT32                  cha;
95
 
        UINT32                  chd;
96
 
        UINT32                  chc;
97
 
        UINT32                  rbp;
98
 
        UINT32                  tmc;
99
 
        UINT32                  tmr;
100
 
        UINT32                  pc0;
101
 
        UINT32                  pc1;
102
 
        UINT32                  pc2;
103
 
        UINT32                  mmu;
104
 
        UINT32                  lru;
105
 
 
106
 
        /* Unprotected SPRs */
107
 
        UINT32                  ipc;
108
 
        UINT32                  ipa;
109
 
        UINT32                  ipb;
110
 
        UINT32                  q;
111
 
        UINT32                  alu;
112
 
        UINT32                  fpe;
113
 
        UINT32                  inte;
114
 
        UINT32                  fps;
115
 
 
116
 
        /* Pipeline state */
117
 
        UINT32                  exceptions;
118
 
        UINT32                  exception_queue[MAX_EXCEPTIONS];
119
 
 
120
 
        UINT8                   irq_active;
121
 
        UINT8                   irq_lines;
122
 
 
123
 
        UINT32                  exec_ir;
124
 
        UINT32                  next_ir;
125
 
 
126
 
        UINT32                  pl_flags;
127
 
        UINT32                  next_pl_flags;
128
 
 
129
 
        UINT32                  iret_pc;
130
 
 
131
 
        UINT32                  exec_pc;
132
 
        UINT32                  next_pc;
133
 
 
134
 
        address_space *program;
135
 
        direct_read_data *direct;
136
 
        address_space *data;
137
 
        direct_read_data *datadirect;
138
 
        address_space *io;
139
 
} am29000_state;
140
 
 
141
 
 
142
 
/***************************************************************************
143
 
    STATE ACCESSORS
144
 
***************************************************************************/
145
 
 
146
 
INLINE am29000_state *get_safe_token(device_t *device)
147
 
{
148
 
        assert(device != NULL);
149
 
        assert(device->type() == AM29000);
150
 
        return (am29000_state *)downcast<legacy_cpu_device *>(device)->token();
151
 
}
152
 
 
153
 
static CPU_INIT( am29000 )
154
 
{
155
 
        am29000_state *am29000 = get_safe_token(device);
156
 
 
157
 
        am29000->program = device->space(AS_PROGRAM);
158
 
        am29000->direct = &am29000->program->direct();
159
 
        am29000->data = device->space(AS_DATA);
160
 
        am29000->datadirect = &am29000->data->direct();
161
 
        am29000->io = device->space(AS_IO);
162
 
        am29000->cfg = (PRL_AM29000 | PRL_REV_D) << CFG_PRL_SHIFT;
163
 
 
164
 
        /* Register state for saving */
165
 
        device->save_item(NAME(am29000->icount));
166
 
        device->save_item(NAME(am29000->pc));
167
 
        device->save_item(NAME(am29000->r));
168
 
        device->save_item(NAME(am29000->tlb));
169
 
 
170
 
        device->save_item(NAME(am29000->vab));
171
 
        device->save_item(NAME(am29000->ops));
172
 
        device->save_item(NAME(am29000->cps));
173
 
        device->save_item(NAME(am29000->cfg));
174
 
        device->save_item(NAME(am29000->cha));
175
 
        device->save_item(NAME(am29000->chd));
176
 
        device->save_item(NAME(am29000->chc));
177
 
        device->save_item(NAME(am29000->rbp));
178
 
        device->save_item(NAME(am29000->tmc));
179
 
        device->save_item(NAME(am29000->tmr));
180
 
        device->save_item(NAME(am29000->pc0));
181
 
        device->save_item(NAME(am29000->pc1));
182
 
        device->save_item(NAME(am29000->pc2));
183
 
        device->save_item(NAME(am29000->mmu));
184
 
        device->save_item(NAME(am29000->lru));
185
 
 
186
 
        device->save_item(NAME(am29000->ipc));
187
 
        device->save_item(NAME(am29000->ipa));
188
 
        device->save_item(NAME(am29000->ipb));
189
 
        device->save_item(NAME(am29000->q));
190
 
 
191
 
        device->save_item(NAME(am29000->alu));
192
 
        device->save_item(NAME(am29000->fpe));
193
 
        device->save_item(NAME(am29000->inte));
194
 
        device->save_item(NAME(am29000->fps));
195
 
 
196
 
        device->save_item(NAME(am29000->exceptions));
197
 
        device->save_item(NAME(am29000->exception_queue));
198
 
 
199
 
        device->save_item(NAME(am29000->irq_active));
200
 
        device->save_item(NAME(am29000->irq_lines));
201
 
 
202
 
        device->save_item(NAME(am29000->exec_ir));
203
 
        device->save_item(NAME(am29000->next_ir));
204
 
 
205
 
        device->save_item(NAME(am29000->pl_flags));
206
 
        device->save_item(NAME(am29000->next_pl_flags));
207
 
 
208
 
        device->save_item(NAME(am29000->iret_pc));
209
 
        device->save_item(NAME(am29000->exec_pc));
210
 
        device->save_item(NAME(am29000->next_pc));
211
 
}
212
 
 
213
 
static CPU_RESET( am29000 )
214
 
{
215
 
        am29000_state *am29000 = get_safe_token(device);
216
 
 
217
 
        am29000->cps = CPS_FZ | CPS_RE | CPS_PD | CPS_PI | CPS_SM | CPS_DI | CPS_DA;
218
 
        am29000->cfg &= ~(CFG_DW | CFG_CD);
219
 
        am29000->chc &= ~CHC_CV;
220
 
 
221
 
        am29000->pc = 0;
222
 
        am29000->next_pl_flags = 0;
223
 
        am29000->exceptions = 0;
224
 
        am29000->irq_lines = 0;
225
 
}
226
 
 
227
 
 
228
 
static CPU_EXIT( am29000 )
229
 
{
230
 
 
231
 
}
232
 
 
233
 
 
234
 
static void signal_exception(am29000_state *am29000, UINT32 type)
235
 
{
236
 
        am29000->exception_queue[am29000->exceptions++] = type;
237
 
}
238
 
 
239
 
static void external_irq_check(am29000_state *am29000)
240
 
{
241
 
        int mask = (am29000->cps >> CPS_IM_SHIFT) & CPS_IM_MASK;
242
 
        int irq_en = !(am29000->cps & CPS_DI) && !(am29000->cps & CPS_DA);
243
 
        int i;
244
 
 
245
 
        /* Clear interrupt pending bit to begin with */
246
 
        am29000->cps &= ~CPS_IP;
247
 
 
248
 
        for (i = 0; i < 4; ++i)
249
 
        {
250
 
                if (!(am29000->irq_active & (1 << i)) && (am29000->irq_lines & (1 << i)))
251
 
                {
252
 
                        if (irq_en)
253
 
                        {
254
 
                                if (i <= mask)
255
 
                                {
256
 
                                        am29000->irq_active |= (1 << i);
257
 
                                        SIGNAL_EXCEPTION(EXCEPTION_INTR0 + i);
258
 
                                        am29000->pl_flags |= PFLAG_IRQ;
259
 
                                        return;
260
 
                                }
261
 
                        }
262
 
                        /* Set interrupt pending bit if interupt was disabled */
263
 
                        am29000->cps |= CPS_IP;
264
 
                }
265
 
                else
266
 
                        am29000->irq_active &= ~(1 << i);
267
 
        }
268
 
}
269
 
 
270
 
static UINT32 read_program_word(am29000_state *state, UINT32 address)
271
 
{
272
 
        /* TODO: ROM enable? */
273
 
        if (state->cps & CPS_PI || state->cps & CPS_RE)
274
 
                return state->direct->read_decrypted_dword(address);
275
 
        else
276
 
        {
277
 
                fatalerror("Am29000 instruction MMU translation enabled!");
278
 
        }
279
 
        return 0;
280
 
}
281
 
 
282
 
/***************************************************************************
283
 
    HELPER FUNCTIONS
284
 
***************************************************************************/
285
 
 
286
 
INLINE UINT32 get_abs_reg(am29000_state *am29000, UINT8 r, UINT32 iptr)
287
 
{
288
 
        if (r & 0x80)
289
 
        {
290
 
                /* Stack pointer access */
291
 
                r = ((am29000->r[1] >> 2) & 0x7f) + (r & 0x7f);
292
 
                r |= 0x80;
293
 
        }
294
 
        else if (r == 0)
295
 
        {
296
 
                /* Indirect pointer access */
297
 
                r = (iptr >> IPX_SHIFT) & 0xff;
298
 
        }
299
 
        else if (r > 1 && r < 64)
300
 
        {
301
 
                fatalerror("Am29000: Undefined register access (%d)\n", r);
302
 
        }
303
 
        return r;
304
 
}
305
 
 
306
 
 
307
 
/***************************************************************************
308
 
    CORE INCLUDE
309
 
***************************************************************************/
310
 
 
311
 
#include "am29ops.h"
312
 
 
313
 
 
314
 
/***************************************************************************
315
 
    PIPELINE STAGES
316
 
***************************************************************************/
317
 
 
318
 
INLINE void fetch_decode(am29000_state *am29000)
319
 
{
320
 
        UINT32 inst;
321
 
        op_info op;
322
 
 
323
 
        inst = read_program_word(am29000, am29000->pc);
324
 
        am29000->next_ir = inst;
325
 
 
326
 
        op = op_table[inst >> 24];
327
 
 
328
 
        /* Illegal instruction */
329
 
        /* TODO: This should be checked at this point */
330
 
#if 0
331
 
        if (op.flags & IFLAG_ILLEGAL)
332
 
        {
333
 
                fatalerror("Illegal instruction: %x PC:%x PC0:%x PC1:%x\n", inst, am29000->pc, am29000->pc0, am29000->pc1);
334
 
                SIGNAL_EXCEPTION(EXCEPTION_ILLEGAL_OPCODE);
335
 
                return;
336
 
        }
337
 
#endif
338
 
 
339
 
        /* Privledge violations */
340
 
        if (USER_MODE)
341
 
        {
342
 
                if ((op.flags & IFLAG_SUPERVISOR_ONLY))
343
 
                {
344
 
                        SIGNAL_EXCEPTION(EXCEPTION_PROTECTION_VIOLATION);
345
 
                        return;
346
 
                }
347
 
 
348
 
                if ((op.flags & IFLAG_SPR_ACCESS))
349
 
                {
350
 
                        /* TODO: Is this the right place to check this? */
351
 
                        if (INST_SA_FIELD(inst) < 128)
352
 
                        {
353
 
                                SIGNAL_EXCEPTION(EXCEPTION_PROTECTION_VIOLATION);
354
 
                                return;
355
 
                        }
356
 
                }
357
 
 
358
 
                /* Register bank protection */
359
 
                if ((op.flags & IFLAG_RA_PRESENT) && REGISTER_IS_PROTECTED(INST_RA_FIELD(inst)))
360
 
                {
361
 
                        SIGNAL_EXCEPTION(EXCEPTION_PROTECTION_VIOLATION);
362
 
                        return;
363
 
                }
364
 
 
365
 
                if ((op.flags & IFLAG_RB_PRESENT) && REGISTER_IS_PROTECTED(INST_RB_FIELD(inst)))
366
 
                {
367
 
                        SIGNAL_EXCEPTION(EXCEPTION_PROTECTION_VIOLATION);
368
 
                        return;
369
 
                }
370
 
 
371
 
                if ((op.flags & IFLAG_RC_PRESENT) && REGISTER_IS_PROTECTED(INST_RC_FIELD(inst)))
372
 
                {
373
 
                        SIGNAL_EXCEPTION(EXCEPTION_PROTECTION_VIOLATION);
374
 
                        return;
375
 
                }
376
 
        }
377
 
 
378
 
        if (am29000->pl_flags & PFLAG_IRET)
379
 
                am29000->next_pc = am29000->iret_pc;
380
 
        else
381
 
                am29000->next_pc += 4;
382
 
}
383
 
 
384
 
/***************************************************************************
385
 
    CORE EXECUTION LOOP
386
 
***************************************************************************/
387
 
 
388
 
static CPU_EXECUTE( am29000 )
389
 
{
390
 
        am29000_state *am29000 = get_safe_token(device);
391
 
        UINT32 call_debugger = (device->machine().debug_flags & DEBUG_FLAG_ENABLED) != 0;
392
 
 
393
 
        external_irq_check(am29000);
394
 
 
395
 
        do
396
 
        {
397
 
                am29000->next_pl_flags = PFLAG_EXECUTE_EN;
398
 
 
399
 
                if (!FREEZE_MODE)
400
 
                {
401
 
                        am29000->pc1 = am29000->pc0;
402
 
                        am29000->pc0 = am29000->pc;
403
 
                }
404
 
 
405
 
                if (am29000->exceptions)
406
 
                {
407
 
                        am29000->ops = am29000->cps;
408
 
                        am29000->cps &= ~(CPS_TE | CPS_TP | CPS_TU | CPS_FZ | CPS_LK | CPS_WM | CPS_PD | CPS_PI | CPS_SM | CPS_DI | CPS_DA);
409
 
                        am29000->cps |= (CPS_FZ | CPS_PD | CPS_PI | CPS_SM | CPS_DI | CPS_DA);
410
 
 
411
 
                        if (am29000->pl_flags & PFLAG_IRET)
412
 
                        {
413
 
                                am29000->pc0 = am29000->iret_pc;
414
 
                                am29000->pc1 = am29000->next_pc;
415
 
                        }
416
 
 
417
 
 
418
 
                        if (am29000->cfg & CFG_VF)
419
 
                        {
420
 
                                UINT32 vaddr = am29000->vab | am29000->exception_queue[0] * 4;
421
 
                                UINT32 vect = am29000->datadirect->read_decrypted_dword(vaddr);
422
 
 
423
 
                                am29000->pc = vect & ~3;
424
 
                                am29000->next_pc = am29000->pc;
425
 
                        }
426
 
                        else
427
 
                        {
428
 
                                fatalerror("Am29000: Non vectored interrupt fetch!");
429
 
                        }
430
 
 
431
 
                        am29000->exceptions = 0;
432
 
                        am29000->pl_flags = 0;
433
 
                }
434
 
 
435
 
                if (call_debugger)
436
 
                        debugger_instruction_hook(device, am29000->pc);
437
 
 
438
 
                fetch_decode(am29000);
439
 
 
440
 
                if (am29000->pl_flags & PFLAG_EXECUTE_EN)
441
 
                {
442
 
                        if (!FREEZE_MODE)
443
 
                                am29000->pc2 = am29000->pc1;
444
 
 
445
 
                        op_table[am29000->exec_ir >> 24].opcode(am29000);
446
 
                }
447
 
 
448
 
                am29000->exec_ir = am29000->next_ir;
449
 
                am29000->pl_flags = am29000->next_pl_flags;
450
 
                am29000->exec_pc = am29000->pc;
451
 
                am29000->pc = am29000->next_pc;
452
 
        } while (--am29000->icount > 0);
453
 
}
454
 
 
455
 
static void set_irq_line(am29000_state *am29000, int line, int state)
456
 
{
457
 
        if (state)
458
 
                am29000->irq_lines |= (1 << line);
459
 
        else
460
 
                am29000->irq_lines &= ~(1 << line);
461
 
 
462
 
        // TODO : CHECK IRQs
463
 
}
464
 
 
465
 
/***************************************************************************
466
 
    DISASSEMBLY HOOK
467
 
***************************************************************************/
468
 
 
469
 
extern CPU_DISASSEMBLE( am29000 );
470
 
 
471
 
 
472
 
static CPU_SET_INFO( am29000 )
473
 
{
474
 
        am29000_state *am29000 = get_safe_token(device);
475
 
 
476
 
        switch (state)
477
 
        {
478
 
                /* --- the following bits of info are set as 64-bit signed integers --- */
479
 
                case CPUINFO_INT_INPUT_STATE + AM29000_INTR0:   set_irq_line(am29000, AM29000_INTR0, info->i);          break;
480
 
                case CPUINFO_INT_INPUT_STATE + AM29000_INTR1:   set_irq_line(am29000, AM29000_INTR1, info->i);          break;
481
 
                case CPUINFO_INT_INPUT_STATE + AM29000_INTR2:   set_irq_line(am29000, AM29000_INTR2, info->i);          break;
482
 
                case CPUINFO_INT_INPUT_STATE + AM29000_INTR3:   set_irq_line(am29000, AM29000_INTR3, info->i);          break;
483
 
 
484
 
                case CPUINFO_INT_PC:
485
 
                case CPUINFO_INT_REGISTER + AM29000_PC:         am29000->pc = info->i;                                                  break;
486
 
                case CPUINFO_INT_REGISTER + AM29000_VAB:        am29000->vab = info->i;                                                 break;
487
 
                case CPUINFO_INT_REGISTER + AM29000_OPS:        am29000->ops = info->i;                                                 break;
488
 
                case CPUINFO_INT_REGISTER + AM29000_CPS:        am29000->cps = info->i;                                                 break;
489
 
                case CPUINFO_INT_REGISTER + AM29000_CFG:        am29000->cfg = info->i;                                                 break;
490
 
                case CPUINFO_INT_REGISTER + AM29000_CHA:        am29000->cha = info->i;                                                 break;
491
 
                case CPUINFO_INT_REGISTER + AM29000_CHD:        am29000->chd = info->i;                                                 break;
492
 
                case CPUINFO_INT_REGISTER + AM29000_CHC:        am29000->chc = info->i;                                                 break;
493
 
                case CPUINFO_INT_REGISTER + AM29000_RBP:        am29000->rbp = info->i;                                                 break;
494
 
                case CPUINFO_INT_REGISTER + AM29000_TMC:        am29000->tmc = info->i;                                                 break;
495
 
                case CPUINFO_INT_REGISTER + AM29000_TMR:        am29000->tmr = info->i;                                                 break;
496
 
                case CPUINFO_INT_REGISTER + AM29000_PC0:        am29000->pc0 = info->i;                                                 break;
497
 
                case CPUINFO_INT_REGISTER + AM29000_PC1:        am29000->pc1 = info->i;                                                 break;
498
 
                case CPUINFO_INT_REGISTER + AM29000_PC2:        am29000->pc2 = info->i;                                                 break;
499
 
                case CPUINFO_INT_REGISTER + AM29000_MMU:        am29000->mmu = info->i;                                                 break;
500
 
                case CPUINFO_INT_REGISTER + AM29000_LRU:        am29000->lru = info->i;                                                 break;
501
 
                case CPUINFO_INT_REGISTER + AM29000_IPC:        am29000->ipc = info->i;                                                 break;
502
 
                case CPUINFO_INT_REGISTER + AM29000_IPA:        am29000->ipa = info->i;                                                 break;
503
 
                case CPUINFO_INT_REGISTER + AM29000_IPB:        am29000->ipb = info->i;                                                 break;
504
 
                case CPUINFO_INT_REGISTER + AM29000_Q:          am29000->q = info->i;                                                   break;
505
 
                case CPUINFO_INT_REGISTER + AM29000_ALU:        am29000->alu = info->i;                                                 break;
506
 
                case CPUINFO_INT_REGISTER + AM29000_BP:         SET_ALU_BP(info->i);                                                    break;
507
 
                case CPUINFO_INT_REGISTER + AM29000_FC:         SET_ALU_FC(info->i);                                                    break;
508
 
                case CPUINFO_INT_REGISTER + AM29000_CR:         SET_CHC_CR(info->i);                                                    break;
509
 
                case CPUINFO_INT_REGISTER + AM29000_FPE:        am29000->fpe = info->i;                                                 break;
510
 
                case CPUINFO_INT_REGISTER + AM29000_INTE:       am29000->inte = info->i;                                                break;
511
 
                case CPUINFO_INT_REGISTER + AM29000_FPS:        am29000->fps = info->i;                                                 break;
512
 
                case CPUINFO_INT_REGISTER + AM29000_R1:         am29000->r[1] = info->i;                                                        break;
513
 
                case CPUINFO_INT_REGISTER + AM29000_R64:        am29000->r[64] = info->i;                                                       break;
514
 
                case CPUINFO_INT_REGISTER + AM29000_R65:        am29000->r[65] = info->i;                                                       break;
515
 
                case CPUINFO_INT_REGISTER + AM29000_R66:        am29000->r[66] = info->i;                                                       break;
516
 
                case CPUINFO_INT_REGISTER + AM29000_R67:        am29000->r[67] = info->i;                                                       break;
517
 
                case CPUINFO_INT_REGISTER + AM29000_R68:        am29000->r[68] = info->i;                                                       break;
518
 
                case CPUINFO_INT_REGISTER + AM29000_R69:        am29000->r[69] = info->i;                                                       break;
519
 
                case CPUINFO_INT_REGISTER + AM29000_R70:        am29000->r[70] = info->i;                                                       break;
520
 
                case CPUINFO_INT_REGISTER + AM29000_R71:        am29000->r[71] = info->i;                                                       break;
521
 
                case CPUINFO_INT_REGISTER + AM29000_R72:        am29000->r[72] = info->i;                                                       break;
522
 
                case CPUINFO_INT_REGISTER + AM29000_R73:        am29000->r[73] = info->i;                                                       break;
523
 
                case CPUINFO_INT_REGISTER + AM29000_R74:        am29000->r[74] = info->i;                                                       break;
524
 
                case CPUINFO_INT_REGISTER + AM29000_R75:        am29000->r[75] = info->i;                                                       break;
525
 
                case CPUINFO_INT_REGISTER + AM29000_R76:        am29000->r[76] = info->i;                                                       break;
526
 
                case CPUINFO_INT_REGISTER + AM29000_R77:        am29000->r[77] = info->i;                                                       break;
527
 
                case CPUINFO_INT_REGISTER + AM29000_R78:        am29000->r[78] = info->i;                                                       break;
528
 
                case CPUINFO_INT_REGISTER + AM29000_R79:        am29000->r[79] = info->i;                                                       break;
529
 
                case CPUINFO_INT_REGISTER + AM29000_R80:        am29000->r[80] = info->i;                                                       break;
530
 
                case CPUINFO_INT_REGISTER + AM29000_R81:        am29000->r[81] = info->i;                                                       break;
531
 
                case CPUINFO_INT_REGISTER + AM29000_R82:        am29000->r[82] = info->i;                                                       break;
532
 
                case CPUINFO_INT_REGISTER + AM29000_R83:        am29000->r[83] = info->i;                                                       break;
533
 
                case CPUINFO_INT_REGISTER + AM29000_R84:        am29000->r[84] = info->i;                                                       break;
534
 
                case CPUINFO_INT_REGISTER + AM29000_R85:        am29000->r[85] = info->i;                                                       break;
535
 
                case CPUINFO_INT_REGISTER + AM29000_R86:        am29000->r[86] = info->i;                                                       break;
536
 
                case CPUINFO_INT_REGISTER + AM29000_R87:        am29000->r[87] = info->i;                                                       break;
537
 
                case CPUINFO_INT_REGISTER + AM29000_R88:        am29000->r[88] = info->i;                                                       break;
538
 
                case CPUINFO_INT_REGISTER + AM29000_R89:        am29000->r[89] = info->i;                                                       break;
539
 
                case CPUINFO_INT_REGISTER + AM29000_R90:        am29000->r[90] = info->i;                                                       break;
540
 
                case CPUINFO_INT_REGISTER + AM29000_R91:        am29000->r[91] = info->i;                                                       break;
541
 
                case CPUINFO_INT_REGISTER + AM29000_R92:        am29000->r[92] = info->i;                                                       break;
542
 
                case CPUINFO_INT_REGISTER + AM29000_R93:        am29000->r[93] = info->i;                                                       break;
543
 
                case CPUINFO_INT_REGISTER + AM29000_R94:        am29000->r[94] = info->i;                                                       break;
544
 
                case CPUINFO_INT_REGISTER + AM29000_R95:        am29000->r[95] = info->i;                                                       break;
545
 
                case CPUINFO_INT_REGISTER + AM29000_R96:        am29000->r[96] = info->i;                                                       break;
546
 
                case CPUINFO_INT_REGISTER + AM29000_R97:        am29000->r[97] = info->i;                                                       break;
547
 
                case CPUINFO_INT_REGISTER + AM29000_R98:        am29000->r[98] = info->i;                                                       break;
548
 
                case CPUINFO_INT_REGISTER + AM29000_R99:        am29000->r[99] = info->i;                                                       break;
549
 
                case CPUINFO_INT_REGISTER + AM29000_R100:       am29000->r[100] = info->i;                                                      break;
550
 
                case CPUINFO_INT_REGISTER + AM29000_R101:       am29000->r[101] = info->i;                                                      break;
551
 
                case CPUINFO_INT_REGISTER + AM29000_R102:       am29000->r[102] = info->i;                                                      break;
552
 
                case CPUINFO_INT_REGISTER + AM29000_R103:       am29000->r[103] = info->i;                                                      break;
553
 
                case CPUINFO_INT_REGISTER + AM29000_R104:       am29000->r[104] = info->i;                                                      break;
554
 
                case CPUINFO_INT_REGISTER + AM29000_R105:       am29000->r[105] = info->i;                                                      break;
555
 
                case CPUINFO_INT_REGISTER + AM29000_R106:       am29000->r[106] = info->i;                                                      break;
556
 
                case CPUINFO_INT_REGISTER + AM29000_R107:       am29000->r[107] = info->i;                                                      break;
557
 
                case CPUINFO_INT_REGISTER + AM29000_R108:       am29000->r[108] = info->i;                                                      break;
558
 
                case CPUINFO_INT_REGISTER + AM29000_R109:       am29000->r[109] = info->i;                                                      break;
559
 
                case CPUINFO_INT_REGISTER + AM29000_R110:       am29000->r[110] = info->i;                                                      break;
560
 
                case CPUINFO_INT_REGISTER + AM29000_R111:       am29000->r[111] = info->i;                                                      break;
561
 
                case CPUINFO_INT_REGISTER + AM29000_R112:       am29000->r[112] = info->i;                                                      break;
562
 
                case CPUINFO_INT_REGISTER + AM29000_R113:       am29000->r[113] = info->i;                                                      break;
563
 
                case CPUINFO_INT_REGISTER + AM29000_R114:       am29000->r[114] = info->i;                                                      break;
564
 
                case CPUINFO_INT_REGISTER + AM29000_R115:       am29000->r[115] = info->i;                                                      break;
565
 
                case CPUINFO_INT_REGISTER + AM29000_R116:       am29000->r[116] = info->i;                                                      break;
566
 
                case CPUINFO_INT_REGISTER + AM29000_R117:       am29000->r[117] = info->i;                                                      break;
567
 
                case CPUINFO_INT_REGISTER + AM29000_R118:       am29000->r[118] = info->i;                                                      break;
568
 
                case CPUINFO_INT_REGISTER + AM29000_R119:       am29000->r[119] = info->i;                                                      break;
569
 
                case CPUINFO_INT_REGISTER + AM29000_R120:       am29000->r[120] = info->i;                                                      break;
570
 
                case CPUINFO_INT_REGISTER + AM29000_R121:       am29000->r[121] = info->i;                                                      break;
571
 
                case CPUINFO_INT_REGISTER + AM29000_R122:       am29000->r[122] = info->i;                                                      break;
572
 
                case CPUINFO_INT_REGISTER + AM29000_R123:       am29000->r[123] = info->i;                                                      break;
573
 
                case CPUINFO_INT_REGISTER + AM29000_R124:       am29000->r[124] = info->i;                                                      break;
574
 
                case CPUINFO_INT_REGISTER + AM29000_R125:       am29000->r[125] = info->i;                                                      break;
575
 
                case CPUINFO_INT_REGISTER + AM29000_R126:       am29000->r[126] = info->i;                                                      break;
576
 
                case CPUINFO_INT_REGISTER + AM29000_R127:       am29000->r[127] = info->i;                                                      break;
577
 
                case CPUINFO_INT_REGISTER + AM29000_R128:       am29000->r[128] = info->i;                                                      break;
578
 
                case CPUINFO_INT_REGISTER + AM29000_R129:       am29000->r[129] = info->i;                                                      break;
579
 
                case CPUINFO_INT_REGISTER + AM29000_R130:       am29000->r[130] = info->i;                                                      break;
580
 
                case CPUINFO_INT_REGISTER + AM29000_R131:       am29000->r[131] = info->i;                                                      break;
581
 
                case CPUINFO_INT_REGISTER + AM29000_R132:       am29000->r[132] = info->i;                                                      break;
582
 
                case CPUINFO_INT_REGISTER + AM29000_R133:       am29000->r[133] = info->i;                                                      break;
583
 
                case CPUINFO_INT_REGISTER + AM29000_R134:       am29000->r[134] = info->i;                                                      break;
584
 
                case CPUINFO_INT_REGISTER + AM29000_R135:       am29000->r[135] = info->i;                                                      break;
585
 
                case CPUINFO_INT_REGISTER + AM29000_R136:       am29000->r[136] = info->i;                                                      break;
586
 
                case CPUINFO_INT_REGISTER + AM29000_R137:       am29000->r[137] = info->i;                                                      break;
587
 
                case CPUINFO_INT_REGISTER + AM29000_R138:       am29000->r[138] = info->i;                                                      break;
588
 
                case CPUINFO_INT_REGISTER + AM29000_R139:       am29000->r[139] = info->i;                                                      break;
589
 
                case CPUINFO_INT_REGISTER + AM29000_R140:       am29000->r[140] = info->i;                                                      break;
590
 
                case CPUINFO_INT_REGISTER + AM29000_R141:       am29000->r[141] = info->i;                                                      break;
591
 
                case CPUINFO_INT_REGISTER + AM29000_R142:       am29000->r[142] = info->i;                                                      break;
592
 
                case CPUINFO_INT_REGISTER + AM29000_R143:       am29000->r[143] = info->i;                                                      break;
593
 
                case CPUINFO_INT_REGISTER + AM29000_R144:       am29000->r[144] = info->i;                                                      break;
594
 
                case CPUINFO_INT_REGISTER + AM29000_R145:       am29000->r[145] = info->i;                                                      break;
595
 
                case CPUINFO_INT_REGISTER + AM29000_R146:       am29000->r[146] = info->i;                                                      break;
596
 
                case CPUINFO_INT_REGISTER + AM29000_R147:       am29000->r[147] = info->i;                                                      break;
597
 
                case CPUINFO_INT_REGISTER + AM29000_R148:       am29000->r[148] = info->i;                                                      break;
598
 
                case CPUINFO_INT_REGISTER + AM29000_R149:       am29000->r[149] = info->i;                                                      break;
599
 
                case CPUINFO_INT_REGISTER + AM29000_R150:       am29000->r[150] = info->i;                                                      break;
600
 
                case CPUINFO_INT_REGISTER + AM29000_R151:       am29000->r[151] = info->i;                                                      break;
601
 
                case CPUINFO_INT_REGISTER + AM29000_R152:       am29000->r[152] = info->i;                                                      break;
602
 
                case CPUINFO_INT_REGISTER + AM29000_R153:       am29000->r[153] = info->i;                                                      break;
603
 
                case CPUINFO_INT_REGISTER + AM29000_R154:       am29000->r[154] = info->i;                                                      break;
604
 
                case CPUINFO_INT_REGISTER + AM29000_R155:       am29000->r[155] = info->i;                                                      break;
605
 
                case CPUINFO_INT_REGISTER + AM29000_R156:       am29000->r[156] = info->i;                                                      break;
606
 
                case CPUINFO_INT_REGISTER + AM29000_R157:       am29000->r[157] = info->i;                                                      break;
607
 
                case CPUINFO_INT_REGISTER + AM29000_R158:       am29000->r[158] = info->i;                                                      break;
608
 
                case CPUINFO_INT_REGISTER + AM29000_R159:       am29000->r[159] = info->i;                                                      break;
609
 
                case CPUINFO_INT_REGISTER + AM29000_R160:       am29000->r[160] = info->i;                                                      break;
610
 
                case CPUINFO_INT_REGISTER + AM29000_R161:       am29000->r[161] = info->i;                                                      break;
611
 
                case CPUINFO_INT_REGISTER + AM29000_R162:       am29000->r[162] = info->i;                                                      break;
612
 
                case CPUINFO_INT_REGISTER + AM29000_R163:       am29000->r[163] = info->i;                                                      break;
613
 
                case CPUINFO_INT_REGISTER + AM29000_R164:       am29000->r[164] = info->i;                                                      break;
614
 
                case CPUINFO_INT_REGISTER + AM29000_R165:       am29000->r[165] = info->i;                                                      break;
615
 
                case CPUINFO_INT_REGISTER + AM29000_R166:       am29000->r[166] = info->i;                                                      break;
616
 
                case CPUINFO_INT_REGISTER + AM29000_R167:       am29000->r[167] = info->i;                                                      break;
617
 
                case CPUINFO_INT_REGISTER + AM29000_R168:       am29000->r[168] = info->i;                                                      break;
618
 
                case CPUINFO_INT_REGISTER + AM29000_R169:       am29000->r[169] = info->i;                                                      break;
619
 
                case CPUINFO_INT_REGISTER + AM29000_R170:       am29000->r[170] = info->i;                                                      break;
620
 
                case CPUINFO_INT_REGISTER + AM29000_R171:       am29000->r[171] = info->i;                                                      break;
621
 
                case CPUINFO_INT_REGISTER + AM29000_R172:       am29000->r[172] = info->i;                                                      break;
622
 
                case CPUINFO_INT_REGISTER + AM29000_R173:       am29000->r[173] = info->i;                                                      break;
623
 
                case CPUINFO_INT_REGISTER + AM29000_R174:       am29000->r[174] = info->i;                                                      break;
624
 
                case CPUINFO_INT_REGISTER + AM29000_R175:       am29000->r[175] = info->i;                                                      break;
625
 
                case CPUINFO_INT_REGISTER + AM29000_R176:       am29000->r[176] = info->i;                                                      break;
626
 
                case CPUINFO_INT_REGISTER + AM29000_R177:       am29000->r[177] = info->i;                                                      break;
627
 
                case CPUINFO_INT_REGISTER + AM29000_R178:       am29000->r[178] = info->i;                                                      break;
628
 
                case CPUINFO_INT_REGISTER + AM29000_R179:       am29000->r[179] = info->i;                                                      break;
629
 
                case CPUINFO_INT_REGISTER + AM29000_R180:       am29000->r[180] = info->i;                                                      break;
630
 
                case CPUINFO_INT_REGISTER + AM29000_R181:       am29000->r[181] = info->i;                                                      break;
631
 
                case CPUINFO_INT_REGISTER + AM29000_R182:       am29000->r[182] = info->i;                                                      break;
632
 
                case CPUINFO_INT_REGISTER + AM29000_R183:       am29000->r[183] = info->i;                                                      break;
633
 
                case CPUINFO_INT_REGISTER + AM29000_R184:       am29000->r[184] = info->i;                                                      break;
634
 
                case CPUINFO_INT_REGISTER + AM29000_R185:       am29000->r[185] = info->i;                                                      break;
635
 
                case CPUINFO_INT_REGISTER + AM29000_R186:       am29000->r[186] = info->i;                                                      break;
636
 
                case CPUINFO_INT_REGISTER + AM29000_R187:       am29000->r[187] = info->i;                                                      break;
637
 
                case CPUINFO_INT_REGISTER + AM29000_R188:       am29000->r[188] = info->i;                                                      break;
638
 
                case CPUINFO_INT_REGISTER + AM29000_R189:       am29000->r[189] = info->i;                                                      break;
639
 
                case CPUINFO_INT_REGISTER + AM29000_R190:       am29000->r[190] = info->i;                                                      break;
640
 
                case CPUINFO_INT_REGISTER + AM29000_R191:       am29000->r[191] = info->i;                                                      break;
641
 
                case CPUINFO_INT_REGISTER + AM29000_R192:       am29000->r[192] = info->i;                                                      break;
642
 
                case CPUINFO_INT_REGISTER + AM29000_R193:       am29000->r[193] = info->i;                                                      break;
643
 
                case CPUINFO_INT_REGISTER + AM29000_R194:       am29000->r[194] = info->i;                                                      break;
644
 
                case CPUINFO_INT_REGISTER + AM29000_R195:       am29000->r[195] = info->i;                                                      break;
645
 
                case CPUINFO_INT_REGISTER + AM29000_R196:       am29000->r[196] = info->i;                                                      break;
646
 
                case CPUINFO_INT_REGISTER + AM29000_R197:       am29000->r[197] = info->i;                                                      break;
647
 
                case CPUINFO_INT_REGISTER + AM29000_R198:       am29000->r[198] = info->i;                                                      break;
648
 
                case CPUINFO_INT_REGISTER + AM29000_R199:       am29000->r[199] = info->i;                                                      break;
649
 
                case CPUINFO_INT_REGISTER + AM29000_R200:       am29000->r[200] = info->i;                                                      break;
650
 
                case CPUINFO_INT_REGISTER + AM29000_R201:       am29000->r[201] = info->i;                                                      break;
651
 
                case CPUINFO_INT_REGISTER + AM29000_R202:       am29000->r[202] = info->i;                                                      break;
652
 
                case CPUINFO_INT_REGISTER + AM29000_R203:       am29000->r[203] = info->i;                                                      break;
653
 
                case CPUINFO_INT_REGISTER + AM29000_R204:       am29000->r[204] = info->i;                                                      break;
654
 
                case CPUINFO_INT_REGISTER + AM29000_R205:       am29000->r[205] = info->i;                                                      break;
655
 
                case CPUINFO_INT_REGISTER + AM29000_R206:       am29000->r[206] = info->i;                                                      break;
656
 
                case CPUINFO_INT_REGISTER + AM29000_R207:       am29000->r[207] = info->i;                                                      break;
657
 
                case CPUINFO_INT_REGISTER + AM29000_R208:       am29000->r[208] = info->i;                                                      break;
658
 
                case CPUINFO_INT_REGISTER + AM29000_R209:       am29000->r[209] = info->i;                                                      break;
659
 
                case CPUINFO_INT_REGISTER + AM29000_R210:       am29000->r[210] = info->i;                                                      break;
660
 
                case CPUINFO_INT_REGISTER + AM29000_R211:       am29000->r[211] = info->i;                                                      break;
661
 
                case CPUINFO_INT_REGISTER + AM29000_R212:       am29000->r[212] = info->i;                                                      break;
662
 
                case CPUINFO_INT_REGISTER + AM29000_R213:       am29000->r[213] = info->i;                                                      break;
663
 
                case CPUINFO_INT_REGISTER + AM29000_R214:       am29000->r[214] = info->i;                                                      break;
664
 
                case CPUINFO_INT_REGISTER + AM29000_R215:       am29000->r[215] = info->i;                                                      break;
665
 
                case CPUINFO_INT_REGISTER + AM29000_R216:       am29000->r[216] = info->i;                                                      break;
666
 
                case CPUINFO_INT_REGISTER + AM29000_R217:       am29000->r[217] = info->i;                                                      break;
667
 
                case CPUINFO_INT_REGISTER + AM29000_R218:       am29000->r[218] = info->i;                                                      break;
668
 
                case CPUINFO_INT_REGISTER + AM29000_R219:       am29000->r[219] = info->i;                                                      break;
669
 
                case CPUINFO_INT_REGISTER + AM29000_R220:       am29000->r[220] = info->i;                                                      break;
670
 
                case CPUINFO_INT_REGISTER + AM29000_R221:       am29000->r[221] = info->i;                                                      break;
671
 
                case CPUINFO_INT_REGISTER + AM29000_R222:       am29000->r[222] = info->i;                                                      break;
672
 
                case CPUINFO_INT_REGISTER + AM29000_R223:       am29000->r[223] = info->i;                                                      break;
673
 
                case CPUINFO_INT_REGISTER + AM29000_R224:       am29000->r[224] = info->i;                                                      break;
674
 
                case CPUINFO_INT_REGISTER + AM29000_R225:       am29000->r[225] = info->i;                                                      break;
675
 
                case CPUINFO_INT_REGISTER + AM29000_R226:       am29000->r[226] = info->i;                                                      break;
676
 
                case CPUINFO_INT_REGISTER + AM29000_R227:       am29000->r[227] = info->i;                                                      break;
677
 
                case CPUINFO_INT_REGISTER + AM29000_R228:       am29000->r[228] = info->i;                                                      break;
678
 
                case CPUINFO_INT_REGISTER + AM29000_R229:       am29000->r[229] = info->i;                                                      break;
679
 
                case CPUINFO_INT_REGISTER + AM29000_R230:       am29000->r[230] = info->i;                                                      break;
680
 
                case CPUINFO_INT_REGISTER + AM29000_R231:       am29000->r[231] = info->i;                                                      break;
681
 
                case CPUINFO_INT_REGISTER + AM29000_R232:       am29000->r[232] = info->i;                                                      break;
682
 
                case CPUINFO_INT_REGISTER + AM29000_R233:       am29000->r[233] = info->i;                                                      break;
683
 
                case CPUINFO_INT_REGISTER + AM29000_R234:       am29000->r[234] = info->i;                                                      break;
684
 
                case CPUINFO_INT_REGISTER + AM29000_R235:       am29000->r[235] = info->i;                                                      break;
685
 
                case CPUINFO_INT_REGISTER + AM29000_R236:       am29000->r[236] = info->i;                                                      break;
686
 
                case CPUINFO_INT_REGISTER + AM29000_R237:       am29000->r[237] = info->i;                                                      break;
687
 
                case CPUINFO_INT_REGISTER + AM29000_R238:       am29000->r[238] = info->i;                                                      break;
688
 
                case CPUINFO_INT_REGISTER + AM29000_R239:       am29000->r[239] = info->i;                                                      break;
689
 
                case CPUINFO_INT_REGISTER + AM29000_R240:       am29000->r[240] = info->i;                                                      break;
690
 
                case CPUINFO_INT_REGISTER + AM29000_R241:       am29000->r[241] = info->i;                                                      break;
691
 
                case CPUINFO_INT_REGISTER + AM29000_R242:       am29000->r[242] = info->i;                                                      break;
692
 
                case CPUINFO_INT_REGISTER + AM29000_R243:       am29000->r[243] = info->i;                                                      break;
693
 
                case CPUINFO_INT_REGISTER + AM29000_R244:       am29000->r[244] = info->i;                                                      break;
694
 
                case CPUINFO_INT_REGISTER + AM29000_R245:       am29000->r[245] = info->i;                                                      break;
695
 
                case CPUINFO_INT_REGISTER + AM29000_R246:       am29000->r[246] = info->i;                                                      break;
696
 
                case CPUINFO_INT_REGISTER + AM29000_R247:       am29000->r[247] = info->i;                                                      break;
697
 
                case CPUINFO_INT_REGISTER + AM29000_R248:       am29000->r[248] = info->i;                                                      break;
698
 
                case CPUINFO_INT_REGISTER + AM29000_R249:       am29000->r[249] = info->i;                                                      break;
699
 
                case CPUINFO_INT_REGISTER + AM29000_R250:       am29000->r[250] = info->i;                                                      break;
700
 
                case CPUINFO_INT_REGISTER + AM29000_R251:       am29000->r[251] = info->i;                                                      break;
701
 
                case CPUINFO_INT_REGISTER + AM29000_R252:       am29000->r[252] = info->i;                                                      break;
702
 
                case CPUINFO_INT_REGISTER + AM29000_R253:       am29000->r[253] = info->i;                                                      break;
703
 
                case CPUINFO_INT_REGISTER + AM29000_R254:       am29000->r[254] = info->i;                                                      break;
704
 
                case CPUINFO_INT_REGISTER + AM29000_R255:       am29000->r[255] = info->i;                                                      break;
705
 
        }
706
 
}
707
 
 
708
 
 
709
 
/**************************************************************************
710
 
 * Generic get_info
711
 
 **************************************************************************/
712
 
 
713
 
CPU_GET_INFO( am29000 )
714
 
{
715
 
        am29000_state *am29000 = (device != NULL && device->token() != NULL) ? get_safe_token(device) : NULL;
716
 
 
717
 
        switch (state)
718
 
        {
719
 
                /* --- the following bits of info are returned as 64-bit signed integers --- */
720
 
                case CPUINFO_INT_CONTEXT_SIZE:                                  info->i = sizeof(am29000_state);                break;
721
 
                case CPUINFO_INT_INPUT_LINES:                                   info->i = 1;                                                    break;
722
 
                case CPUINFO_INT_DEFAULT_IRQ_VECTOR:                    info->i = 0;                                                    break;
723
 
                case DEVINFO_INT_ENDIANNESS:                                    info->i = ENDIANNESS_BIG;                               break;
724
 
                case CPUINFO_INT_CLOCK_MULTIPLIER:                              info->i = 1;                                                    break;
725
 
                case CPUINFO_INT_CLOCK_DIVIDER:                                 info->i = 1;                                                    break;
726
 
                case CPUINFO_INT_MIN_INSTRUCTION_BYTES:                 info->i = 4;                                                    break;
727
 
                case CPUINFO_INT_MAX_INSTRUCTION_BYTES:                 info->i = 4;                                                    break;
728
 
                case CPUINFO_INT_MIN_CYCLES:                                    info->i = 1;                                                    break;
729
 
                case CPUINFO_INT_MAX_CYCLES:                                    info->i = 2;                                                    break;
730
 
 
731
 
                case DEVINFO_INT_DATABUS_WIDTH + AS_PROGRAM:                    info->i = 32;                                                   break;
732
 
                case DEVINFO_INT_ADDRBUS_WIDTH + AS_PROGRAM:                    info->i = 32;                                                   break;
733
 
                case DEVINFO_INT_ADDRBUS_SHIFT + AS_PROGRAM:                    info->i = 0;                                                    break;
734
 
                case DEVINFO_INT_DATABUS_WIDTH + AS_DATA:                       info->i = 32;                                                   break;
735
 
                case DEVINFO_INT_ADDRBUS_WIDTH + AS_DATA:                       info->i = 32;                                                   break;
736
 
                case DEVINFO_INT_ADDRBUS_SHIFT + AS_DATA:                       info->i = 0;                                                    break;
737
 
                case DEVINFO_INT_DATABUS_WIDTH + AS_IO:                         info->i = 32;                                                   break;
738
 
                case DEVINFO_INT_ADDRBUS_WIDTH + AS_IO:                         info->i = 32;                                                   break;
739
 
                case DEVINFO_INT_ADDRBUS_SHIFT + AS_IO:                         info->i = 0;                                                    break;
740
 
 
741
 
                case CPUINFO_INT_PC:
742
 
                case CPUINFO_INT_REGISTER + AM29000_PC:         info->i = am29000->pc;                          break;
743
 
                case CPUINFO_INT_REGISTER + AM29000_VAB:        info->i = am29000->vab;                         break;
744
 
                case CPUINFO_INT_REGISTER + AM29000_OPS:        info->i = am29000->ops;                         break;
745
 
                case CPUINFO_INT_REGISTER + AM29000_CPS:        info->i = am29000->cps;                         break;
746
 
                case CPUINFO_INT_REGISTER + AM29000_CFG:        info->i = am29000->cfg;                         break;
747
 
                case CPUINFO_INT_REGISTER + AM29000_CHA:        info->i = am29000->cha;                         break;
748
 
                case CPUINFO_INT_REGISTER + AM29000_CHD:        info->i = am29000->chd;                         break;
749
 
                case CPUINFO_INT_REGISTER + AM29000_CHC:        info->i = am29000->chc;                         break;
750
 
                case CPUINFO_INT_REGISTER + AM29000_RBP:        info->i = am29000->rbp;                         break;
751
 
                case CPUINFO_INT_REGISTER + AM29000_TMC:        info->i = am29000->tmc;                         break;
752
 
                case CPUINFO_INT_REGISTER + AM29000_TMR:        info->i = am29000->tmr;                         break;
753
 
                case CPUINFO_INT_REGISTER + AM29000_PC0:        info->i = am29000->pc0;                         break;
754
 
                case CPUINFO_INT_REGISTER + AM29000_PC1:        info->i = am29000->pc1;                         break;
755
 
                case CPUINFO_INT_REGISTER + AM29000_PC2:        info->i = am29000->pc2;                         break;
756
 
                case CPUINFO_INT_REGISTER + AM29000_MMU:        info->i = am29000->mmu;                         break;
757
 
                case CPUINFO_INT_REGISTER + AM29000_LRU:        info->i = am29000->lru;                         break;
758
 
                case CPUINFO_INT_REGISTER + AM29000_IPC:        info->i = am29000->ipc;                         break;
759
 
                case CPUINFO_INT_REGISTER + AM29000_IPA:        info->i = am29000->ipa;                         break;
760
 
                case CPUINFO_INT_REGISTER + AM29000_IPB:        info->i = am29000->ipb;                         break;
761
 
                case CPUINFO_INT_REGISTER + AM29000_Q:          info->i = am29000->q;                           break;
762
 
                case CPUINFO_INT_REGISTER + AM29000_ALU:        info->i = am29000->alu;                         break;
763
 
                case CPUINFO_INT_REGISTER + AM29000_BP:         info->i = GET_ALU_BP;                           break;
764
 
                case CPUINFO_INT_REGISTER + AM29000_FC:         info->i = GET_ALU_FC;                           break;
765
 
                case CPUINFO_INT_REGISTER + AM29000_CR:         info->i = GET_CHC_CR;                           break;
766
 
                case CPUINFO_INT_REGISTER + AM29000_FPE:        info->i = am29000->fpe;                         break;
767
 
                case CPUINFO_INT_REGISTER + AM29000_INTE:       info->i = am29000->inte;                        break;
768
 
                case CPUINFO_INT_REGISTER + AM29000_FPS:        info->i = am29000->fps;                         break;
769
 
                case CPUINFO_INT_REGISTER + AM29000_R1:         info->i = am29000->r[1];                        break;
770
 
                case CPUINFO_INT_REGISTER + AM29000_R64:        info->i = am29000->r[64];                       break;
771
 
                case CPUINFO_INT_REGISTER + AM29000_R65:        info->i = am29000->r[65];                       break;
772
 
                case CPUINFO_INT_REGISTER + AM29000_R66:        info->i = am29000->r[66];                       break;
773
 
                case CPUINFO_INT_REGISTER + AM29000_R67:        info->i = am29000->r[67];                       break;
774
 
                case CPUINFO_INT_REGISTER + AM29000_R68:        info->i = am29000->r[68];                       break;
775
 
                case CPUINFO_INT_REGISTER + AM29000_R69:        info->i = am29000->r[69];                       break;
776
 
                case CPUINFO_INT_REGISTER + AM29000_R70:        info->i = am29000->r[70];                       break;
777
 
                case CPUINFO_INT_REGISTER + AM29000_R71:        info->i = am29000->r[71];                       break;
778
 
                case CPUINFO_INT_REGISTER + AM29000_R72:        info->i = am29000->r[72];                       break;
779
 
                case CPUINFO_INT_REGISTER + AM29000_R73:        info->i = am29000->r[73];                       break;
780
 
                case CPUINFO_INT_REGISTER + AM29000_R74:        info->i = am29000->r[74];                       break;
781
 
                case CPUINFO_INT_REGISTER + AM29000_R75:        info->i = am29000->r[75];                       break;
782
 
                case CPUINFO_INT_REGISTER + AM29000_R76:        info->i = am29000->r[76];                       break;
783
 
                case CPUINFO_INT_REGISTER + AM29000_R77:        info->i = am29000->r[77];                       break;
784
 
                case CPUINFO_INT_REGISTER + AM29000_R78:        info->i = am29000->r[78];                       break;
785
 
                case CPUINFO_INT_REGISTER + AM29000_R79:        info->i = am29000->r[79];                       break;
786
 
                case CPUINFO_INT_REGISTER + AM29000_R80:        info->i = am29000->r[80];                       break;
787
 
                case CPUINFO_INT_REGISTER + AM29000_R81:        info->i = am29000->r[81];                       break;
788
 
                case CPUINFO_INT_REGISTER + AM29000_R82:        info->i = am29000->r[82];                       break;
789
 
                case CPUINFO_INT_REGISTER + AM29000_R83:        info->i = am29000->r[83];                       break;
790
 
                case CPUINFO_INT_REGISTER + AM29000_R84:        info->i = am29000->r[84];                       break;
791
 
                case CPUINFO_INT_REGISTER + AM29000_R85:        info->i = am29000->r[85];                       break;
792
 
                case CPUINFO_INT_REGISTER + AM29000_R86:        info->i = am29000->r[86];                       break;
793
 
                case CPUINFO_INT_REGISTER + AM29000_R87:        info->i = am29000->r[87];                       break;
794
 
                case CPUINFO_INT_REGISTER + AM29000_R88:        info->i = am29000->r[88];                       break;
795
 
                case CPUINFO_INT_REGISTER + AM29000_R89:        info->i = am29000->r[89];                       break;
796
 
                case CPUINFO_INT_REGISTER + AM29000_R90:        info->i = am29000->r[90];                       break;
797
 
                case CPUINFO_INT_REGISTER + AM29000_R91:        info->i = am29000->r[91];                       break;
798
 
                case CPUINFO_INT_REGISTER + AM29000_R92:        info->i = am29000->r[92];                       break;
799
 
                case CPUINFO_INT_REGISTER + AM29000_R93:        info->i = am29000->r[93];                       break;
800
 
                case CPUINFO_INT_REGISTER + AM29000_R94:        info->i = am29000->r[94];                       break;
801
 
                case CPUINFO_INT_REGISTER + AM29000_R95:        info->i = am29000->r[95];                       break;
802
 
                case CPUINFO_INT_REGISTER + AM29000_R96:        info->i = am29000->r[96];                       break;
803
 
                case CPUINFO_INT_REGISTER + AM29000_R97:        info->i = am29000->r[97];                       break;
804
 
                case CPUINFO_INT_REGISTER + AM29000_R98:        info->i = am29000->r[98];                       break;
805
 
                case CPUINFO_INT_REGISTER + AM29000_R99:        info->i = am29000->r[99];                       break;
806
 
                case CPUINFO_INT_REGISTER + AM29000_R100:       info->i = am29000->r[100];                      break;
807
 
                case CPUINFO_INT_REGISTER + AM29000_R101:       info->i = am29000->r[101];                      break;
808
 
                case CPUINFO_INT_REGISTER + AM29000_R102:       info->i = am29000->r[102];                      break;
809
 
                case CPUINFO_INT_REGISTER + AM29000_R103:       info->i = am29000->r[103];                      break;
810
 
                case CPUINFO_INT_REGISTER + AM29000_R104:       info->i = am29000->r[104];                      break;
811
 
                case CPUINFO_INT_REGISTER + AM29000_R105:       info->i = am29000->r[105];                      break;
812
 
                case CPUINFO_INT_REGISTER + AM29000_R106:       info->i = am29000->r[106];                      break;
813
 
                case CPUINFO_INT_REGISTER + AM29000_R107:       info->i = am29000->r[107];                      break;
814
 
                case CPUINFO_INT_REGISTER + AM29000_R108:       info->i = am29000->r[108];                      break;
815
 
                case CPUINFO_INT_REGISTER + AM29000_R109:       info->i = am29000->r[109];                      break;
816
 
                case CPUINFO_INT_REGISTER + AM29000_R110:       info->i = am29000->r[110];                      break;
817
 
                case CPUINFO_INT_REGISTER + AM29000_R111:       info->i = am29000->r[111];                      break;
818
 
                case CPUINFO_INT_REGISTER + AM29000_R112:       info->i = am29000->r[112];                      break;
819
 
                case CPUINFO_INT_REGISTER + AM29000_R113:       info->i = am29000->r[113];                      break;
820
 
                case CPUINFO_INT_REGISTER + AM29000_R114:       info->i = am29000->r[114];                      break;
821
 
                case CPUINFO_INT_REGISTER + AM29000_R115:       info->i = am29000->r[115];                      break;
822
 
                case CPUINFO_INT_REGISTER + AM29000_R116:       info->i = am29000->r[116];                      break;
823
 
                case CPUINFO_INT_REGISTER + AM29000_R117:       info->i = am29000->r[117];                      break;
824
 
                case CPUINFO_INT_REGISTER + AM29000_R118:       info->i = am29000->r[118];                      break;
825
 
                case CPUINFO_INT_REGISTER + AM29000_R119:       info->i = am29000->r[119];                      break;
826
 
                case CPUINFO_INT_REGISTER + AM29000_R120:       info->i = am29000->r[120];                      break;
827
 
                case CPUINFO_INT_REGISTER + AM29000_R121:       info->i = am29000->r[121];                      break;
828
 
                case CPUINFO_INT_REGISTER + AM29000_R122:       info->i = am29000->r[122];                      break;
829
 
                case CPUINFO_INT_REGISTER + AM29000_R123:       info->i = am29000->r[123];                      break;
830
 
                case CPUINFO_INT_REGISTER + AM29000_R124:       info->i = am29000->r[124];                      break;
831
 
                case CPUINFO_INT_REGISTER + AM29000_R125:       info->i = am29000->r[125];                      break;
832
 
                case CPUINFO_INT_REGISTER + AM29000_R126:       info->i = am29000->r[126];                      break;
833
 
                case CPUINFO_INT_REGISTER + AM29000_R127:       info->i = am29000->r[127];                      break;
834
 
                case CPUINFO_INT_REGISTER + AM29000_R128:       info->i = am29000->r[128];                      break;
835
 
                case CPUINFO_INT_REGISTER + AM29000_R129:       info->i = am29000->r[129];                      break;
836
 
                case CPUINFO_INT_REGISTER + AM29000_R130:       info->i = am29000->r[130];                      break;
837
 
                case CPUINFO_INT_REGISTER + AM29000_R131:       info->i = am29000->r[131];                      break;
838
 
                case CPUINFO_INT_REGISTER + AM29000_R132:       info->i = am29000->r[132];                      break;
839
 
                case CPUINFO_INT_REGISTER + AM29000_R133:       info->i = am29000->r[133];                      break;
840
 
                case CPUINFO_INT_REGISTER + AM29000_R134:       info->i = am29000->r[134];                      break;
841
 
                case CPUINFO_INT_REGISTER + AM29000_R135:       info->i = am29000->r[135];                      break;
842
 
                case CPUINFO_INT_REGISTER + AM29000_R136:       info->i = am29000->r[136];                      break;
843
 
                case CPUINFO_INT_REGISTER + AM29000_R137:       info->i = am29000->r[137];                      break;
844
 
                case CPUINFO_INT_REGISTER + AM29000_R138:       info->i = am29000->r[138];                      break;
845
 
                case CPUINFO_INT_REGISTER + AM29000_R139:       info->i = am29000->r[139];                      break;
846
 
                case CPUINFO_INT_REGISTER + AM29000_R140:       info->i = am29000->r[140];                      break;
847
 
                case CPUINFO_INT_REGISTER + AM29000_R141:       info->i = am29000->r[141];                      break;
848
 
                case CPUINFO_INT_REGISTER + AM29000_R142:       info->i = am29000->r[142];                      break;
849
 
                case CPUINFO_INT_REGISTER + AM29000_R143:       info->i = am29000->r[143];                      break;
850
 
                case CPUINFO_INT_REGISTER + AM29000_R144:       info->i = am29000->r[144];                      break;
851
 
                case CPUINFO_INT_REGISTER + AM29000_R145:       info->i = am29000->r[145];                      break;
852
 
                case CPUINFO_INT_REGISTER + AM29000_R146:       info->i = am29000->r[146];                      break;
853
 
                case CPUINFO_INT_REGISTER + AM29000_R147:       info->i = am29000->r[147];                      break;
854
 
                case CPUINFO_INT_REGISTER + AM29000_R148:       info->i = am29000->r[148];                      break;
855
 
                case CPUINFO_INT_REGISTER + AM29000_R149:       info->i = am29000->r[149];                      break;
856
 
                case CPUINFO_INT_REGISTER + AM29000_R150:       info->i = am29000->r[150];                      break;
857
 
                case CPUINFO_INT_REGISTER + AM29000_R151:       info->i = am29000->r[151];                      break;
858
 
                case CPUINFO_INT_REGISTER + AM29000_R152:       info->i = am29000->r[152];                      break;
859
 
                case CPUINFO_INT_REGISTER + AM29000_R153:       info->i = am29000->r[153];                      break;
860
 
                case CPUINFO_INT_REGISTER + AM29000_R154:       info->i = am29000->r[154];                      break;
861
 
                case CPUINFO_INT_REGISTER + AM29000_R155:       info->i = am29000->r[155];                      break;
862
 
                case CPUINFO_INT_REGISTER + AM29000_R156:       info->i = am29000->r[156];                      break;
863
 
                case CPUINFO_INT_REGISTER + AM29000_R157:       info->i = am29000->r[157];                      break;
864
 
                case CPUINFO_INT_REGISTER + AM29000_R158:       info->i = am29000->r[158];                      break;
865
 
                case CPUINFO_INT_REGISTER + AM29000_R159:       info->i = am29000->r[159];                      break;
866
 
                case CPUINFO_INT_REGISTER + AM29000_R160:       info->i = am29000->r[160];                      break;
867
 
                case CPUINFO_INT_REGISTER + AM29000_R161:       info->i = am29000->r[161];                      break;
868
 
                case CPUINFO_INT_REGISTER + AM29000_R162:       info->i = am29000->r[162];                      break;
869
 
                case CPUINFO_INT_REGISTER + AM29000_R163:       info->i = am29000->r[163];                      break;
870
 
                case CPUINFO_INT_REGISTER + AM29000_R164:       info->i = am29000->r[164];                      break;
871
 
                case CPUINFO_INT_REGISTER + AM29000_R165:       info->i = am29000->r[165];                      break;
872
 
                case CPUINFO_INT_REGISTER + AM29000_R166:       info->i = am29000->r[166];                      break;
873
 
                case CPUINFO_INT_REGISTER + AM29000_R167:       info->i = am29000->r[167];                      break;
874
 
                case CPUINFO_INT_REGISTER + AM29000_R168:       info->i = am29000->r[168];                      break;
875
 
                case CPUINFO_INT_REGISTER + AM29000_R169:       info->i = am29000->r[169];                      break;
876
 
                case CPUINFO_INT_REGISTER + AM29000_R170:       info->i = am29000->r[170];                      break;
877
 
                case CPUINFO_INT_REGISTER + AM29000_R171:       info->i = am29000->r[171];                      break;
878
 
                case CPUINFO_INT_REGISTER + AM29000_R172:       info->i = am29000->r[172];                      break;
879
 
                case CPUINFO_INT_REGISTER + AM29000_R173:       info->i = am29000->r[173];                      break;
880
 
                case CPUINFO_INT_REGISTER + AM29000_R174:       info->i = am29000->r[174];                      break;
881
 
                case CPUINFO_INT_REGISTER + AM29000_R175:       info->i = am29000->r[175];                      break;
882
 
                case CPUINFO_INT_REGISTER + AM29000_R176:       info->i = am29000->r[176];                      break;
883
 
                case CPUINFO_INT_REGISTER + AM29000_R177:       info->i = am29000->r[177];                      break;
884
 
                case CPUINFO_INT_REGISTER + AM29000_R178:       info->i = am29000->r[178];                      break;
885
 
                case CPUINFO_INT_REGISTER + AM29000_R179:       info->i = am29000->r[179];                      break;
886
 
                case CPUINFO_INT_REGISTER + AM29000_R180:       info->i = am29000->r[180];                      break;
887
 
                case CPUINFO_INT_REGISTER + AM29000_R181:       info->i = am29000->r[181];                      break;
888
 
                case CPUINFO_INT_REGISTER + AM29000_R182:       info->i = am29000->r[182];                      break;
889
 
                case CPUINFO_INT_REGISTER + AM29000_R183:       info->i = am29000->r[183];                      break;
890
 
                case CPUINFO_INT_REGISTER + AM29000_R184:       info->i = am29000->r[184];                      break;
891
 
                case CPUINFO_INT_REGISTER + AM29000_R185:       info->i = am29000->r[185];                      break;
892
 
                case CPUINFO_INT_REGISTER + AM29000_R186:       info->i = am29000->r[186];                      break;
893
 
                case CPUINFO_INT_REGISTER + AM29000_R187:       info->i = am29000->r[187];                      break;
894
 
                case CPUINFO_INT_REGISTER + AM29000_R188:       info->i = am29000->r[188];                      break;
895
 
                case CPUINFO_INT_REGISTER + AM29000_R189:       info->i = am29000->r[189];                      break;
896
 
                case CPUINFO_INT_REGISTER + AM29000_R190:       info->i = am29000->r[190];                      break;
897
 
                case CPUINFO_INT_REGISTER + AM29000_R191:       info->i = am29000->r[191];                      break;
898
 
                case CPUINFO_INT_REGISTER + AM29000_R192:       info->i = am29000->r[192];                      break;
899
 
                case CPUINFO_INT_REGISTER + AM29000_R193:       info->i = am29000->r[193];                      break;
900
 
                case CPUINFO_INT_REGISTER + AM29000_R194:       info->i = am29000->r[194];                      break;
901
 
                case CPUINFO_INT_REGISTER + AM29000_R195:       info->i = am29000->r[195];                      break;
902
 
                case CPUINFO_INT_REGISTER + AM29000_R196:       info->i = am29000->r[196];                      break;
903
 
                case CPUINFO_INT_REGISTER + AM29000_R197:       info->i = am29000->r[197];                      break;
904
 
                case CPUINFO_INT_REGISTER + AM29000_R198:       info->i = am29000->r[198];                      break;
905
 
                case CPUINFO_INT_REGISTER + AM29000_R199:       info->i = am29000->r[199];                      break;
906
 
                case CPUINFO_INT_REGISTER + AM29000_R200:       info->i = am29000->r[200];                      break;
907
 
                case CPUINFO_INT_REGISTER + AM29000_R201:       info->i = am29000->r[201];                      break;
908
 
                case CPUINFO_INT_REGISTER + AM29000_R202:       info->i = am29000->r[202];                      break;
909
 
                case CPUINFO_INT_REGISTER + AM29000_R203:       info->i = am29000->r[203];                      break;
910
 
                case CPUINFO_INT_REGISTER + AM29000_R204:       info->i = am29000->r[204];                      break;
911
 
                case CPUINFO_INT_REGISTER + AM29000_R205:       info->i = am29000->r[205];                      break;
912
 
                case CPUINFO_INT_REGISTER + AM29000_R206:       info->i = am29000->r[206];                      break;
913
 
                case CPUINFO_INT_REGISTER + AM29000_R207:       info->i = am29000->r[207];                      break;
914
 
                case CPUINFO_INT_REGISTER + AM29000_R208:       info->i = am29000->r[208];                      break;
915
 
                case CPUINFO_INT_REGISTER + AM29000_R209:       info->i = am29000->r[209];                      break;
916
 
                case CPUINFO_INT_REGISTER + AM29000_R210:       info->i = am29000->r[210];                      break;
917
 
                case CPUINFO_INT_REGISTER + AM29000_R211:       info->i = am29000->r[211];                      break;
918
 
                case CPUINFO_INT_REGISTER + AM29000_R212:       info->i = am29000->r[212];                      break;
919
 
                case CPUINFO_INT_REGISTER + AM29000_R213:       info->i = am29000->r[213];                      break;
920
 
                case CPUINFO_INT_REGISTER + AM29000_R214:       info->i = am29000->r[214];                      break;
921
 
                case CPUINFO_INT_REGISTER + AM29000_R215:       info->i = am29000->r[215];                      break;
922
 
                case CPUINFO_INT_REGISTER + AM29000_R216:       info->i = am29000->r[216];                      break;
923
 
                case CPUINFO_INT_REGISTER + AM29000_R217:       info->i = am29000->r[217];                      break;
924
 
                case CPUINFO_INT_REGISTER + AM29000_R218:       info->i = am29000->r[218];                      break;
925
 
                case CPUINFO_INT_REGISTER + AM29000_R219:       info->i = am29000->r[219];                      break;
926
 
                case CPUINFO_INT_REGISTER + AM29000_R220:       info->i = am29000->r[220];                      break;
927
 
                case CPUINFO_INT_REGISTER + AM29000_R221:       info->i = am29000->r[221];                      break;
928
 
                case CPUINFO_INT_REGISTER + AM29000_R222:       info->i = am29000->r[222];                      break;
929
 
                case CPUINFO_INT_REGISTER + AM29000_R223:       info->i = am29000->r[223];                      break;
930
 
                case CPUINFO_INT_REGISTER + AM29000_R224:       info->i = am29000->r[224];                      break;
931
 
                case CPUINFO_INT_REGISTER + AM29000_R225:       info->i = am29000->r[225];                      break;
932
 
                case CPUINFO_INT_REGISTER + AM29000_R226:       info->i = am29000->r[226];                      break;
933
 
                case CPUINFO_INT_REGISTER + AM29000_R227:       info->i = am29000->r[227];                      break;
934
 
                case CPUINFO_INT_REGISTER + AM29000_R228:       info->i = am29000->r[228];                      break;
935
 
                case CPUINFO_INT_REGISTER + AM29000_R229:       info->i = am29000->r[229];                      break;
936
 
                case CPUINFO_INT_REGISTER + AM29000_R230:       info->i = am29000->r[230];                      break;
937
 
                case CPUINFO_INT_REGISTER + AM29000_R231:       info->i = am29000->r[231];                      break;
938
 
                case CPUINFO_INT_REGISTER + AM29000_R232:       info->i = am29000->r[232];                      break;
939
 
                case CPUINFO_INT_REGISTER + AM29000_R233:       info->i = am29000->r[233];                      break;
940
 
                case CPUINFO_INT_REGISTER + AM29000_R234:       info->i = am29000->r[234];                      break;
941
 
                case CPUINFO_INT_REGISTER + AM29000_R235:       info->i = am29000->r[235];                      break;
942
 
                case CPUINFO_INT_REGISTER + AM29000_R236:       info->i = am29000->r[236];                      break;
943
 
                case CPUINFO_INT_REGISTER + AM29000_R237:       info->i = am29000->r[237];                      break;
944
 
                case CPUINFO_INT_REGISTER + AM29000_R238:       info->i = am29000->r[238];                      break;
945
 
                case CPUINFO_INT_REGISTER + AM29000_R239:       info->i = am29000->r[239];                      break;
946
 
                case CPUINFO_INT_REGISTER + AM29000_R240:       info->i = am29000->r[240];                      break;
947
 
                case CPUINFO_INT_REGISTER + AM29000_R241:       info->i = am29000->r[241];                      break;
948
 
                case CPUINFO_INT_REGISTER + AM29000_R242:       info->i = am29000->r[242];                      break;
949
 
                case CPUINFO_INT_REGISTER + AM29000_R243:       info->i = am29000->r[243];                      break;
950
 
                case CPUINFO_INT_REGISTER + AM29000_R244:       info->i = am29000->r[244];                      break;
951
 
                case CPUINFO_INT_REGISTER + AM29000_R245:       info->i = am29000->r[245];                      break;
952
 
                case CPUINFO_INT_REGISTER + AM29000_R246:       info->i = am29000->r[246];                      break;
953
 
                case CPUINFO_INT_REGISTER + AM29000_R247:       info->i = am29000->r[247];                      break;
954
 
                case CPUINFO_INT_REGISTER + AM29000_R248:       info->i = am29000->r[248];                      break;
955
 
                case CPUINFO_INT_REGISTER + AM29000_R249:       info->i = am29000->r[249];                      break;
956
 
                case CPUINFO_INT_REGISTER + AM29000_R250:       info->i = am29000->r[250];                      break;
957
 
                case CPUINFO_INT_REGISTER + AM29000_R251:       info->i = am29000->r[251];                      break;
958
 
                case CPUINFO_INT_REGISTER + AM29000_R252:       info->i = am29000->r[252];                      break;
959
 
                case CPUINFO_INT_REGISTER + AM29000_R253:       info->i = am29000->r[253];                      break;
960
 
                case CPUINFO_INT_REGISTER + AM29000_R254:       info->i = am29000->r[254];                      break;
961
 
                case CPUINFO_INT_REGISTER + AM29000_R255:       info->i = am29000->r[255];                      break;
962
 
 
963
 
                /* --- the following bits of info are returned as pointers to data or functions --- */
964
 
                case CPUINFO_FCT_SET_INFO:                                              info->setinfo = CPU_SET_INFO_NAME(am29000);                     break;
965
 
                case CPUINFO_FCT_INIT:                                                  info->init = CPU_INIT_NAME(am29000);                            break;
966
 
                case CPUINFO_FCT_RESET:                                                 info->reset = CPU_RESET_NAME(am29000);                          break;
967
 
                case CPUINFO_FCT_EXIT:                                                  info->exit = CPU_EXIT_NAME(am29000);                            break;
968
 
                case CPUINFO_FCT_EXECUTE:                                               info->execute = CPU_EXECUTE_NAME(am29000);                      break;
969
 
                case CPUINFO_FCT_BURN:                                                  info->burn = NULL;                                                                      break;
970
 
                case CPUINFO_FCT_DISASSEMBLE:                                   info->disassemble = CPU_DISASSEMBLE_NAME(am29000);      break;
971
 
                case CPUINFO_PTR_INSTRUCTION_COUNTER:                   info->icount = &am29000->icount;                                        break;
972
 
 
973
 
                /* --- the following bits of info are returned as NULL-terminated strings --- */
974
 
                case DEVINFO_STR_NAME:                                                  strcpy(info->s, "Am29000");                                                     break;
975
 
                case DEVINFO_STR_FAMILY:                                                strcpy(info->s, "AMD Am29000");                                         break;
976
 
                case DEVINFO_STR_VERSION:                                               strcpy(info->s, "1.0");                                                         break;
977
 
                case DEVINFO_STR_SOURCE_FILE:                                   strcpy(info->s, __FILE__);                                                      break;
978
 
                case DEVINFO_STR_CREDITS:                                               strcpy(info->s, "Copyright Philip Bennett");            break;
979
 
 
980
 
                case CPUINFO_STR_FLAGS:                                                 sprintf(info->s, "%c%c%c%c%c%c%c%c%c|%3d",      am29000->alu & ALU_V ? 'V' : '.',
981
 
                                                                                                                                                                                                        am29000->alu & ALU_Z ? 'Z' : '.',
982
 
                                                                                                                                                                                                        am29000->alu & ALU_N ? 'N' : '.',
983
 
                                                                                                                                                                                                        am29000->alu & ALU_C ? 'C' : '.',
984
 
 
985
 
                                                                                                                                                                                                        am29000->cps & CPS_IP ? 'I' : '.',
986
 
                                                                                                                                                                                                        am29000->cps & CPS_FZ ? 'F' : '.',
987
 
                                                                                                                                                                                                        am29000->cps & CPS_SM ? 'S' : 'U',
988
 
                                                                                                                                                                                                        am29000->cps & CPS_DI ? 'I' : '.',
989
 
                                                                                                                                                                                                        am29000->cps & CPS_DA ? 'D' : '.',
990
 
                                                                                                                                                                                                        (am29000->r[1] >> 2) & 0x7f); break;
991
 
 
992
 
                case CPUINFO_STR_REGISTER + AM29000_PC:                 sprintf(info->s, "PC: %08X", am29000->pc);                      break;
993
 
                case CPUINFO_STR_REGISTER + AM29000_VAB:                sprintf(info->s, "VAB: %08X", am29000->vab);            break;
994
 
                case CPUINFO_STR_REGISTER + AM29000_OPS:                sprintf(info->s, "OPS: %08X", am29000->ops);            break;
995
 
                case CPUINFO_STR_REGISTER + AM29000_CPS:                sprintf(info->s, "CPS: %08X", am29000->cps);            break;
996
 
                case CPUINFO_STR_REGISTER + AM29000_CFG:                sprintf(info->s, "CFG: %08X", am29000->cfg);            break;
997
 
                case CPUINFO_STR_REGISTER + AM29000_CHA:                sprintf(info->s, "CHA: %08X", am29000->cha);            break;
998
 
                case CPUINFO_STR_REGISTER + AM29000_CHD:                sprintf(info->s, "CHD: %08X", am29000->chd);            break;
999
 
                case CPUINFO_STR_REGISTER + AM29000_CHC:                sprintf(info->s, "CHC: %08X", am29000->chc);            break;
1000
 
                case CPUINFO_STR_REGISTER + AM29000_RBP:                sprintf(info->s, "RBP: %08X", am29000->rbp);            break;
1001
 
                case CPUINFO_STR_REGISTER + AM29000_TMC:                sprintf(info->s, "TMC: %08X", am29000->tmc);            break;
1002
 
                case CPUINFO_STR_REGISTER + AM29000_TMR:                sprintf(info->s, "TMR: %08X", am29000->tmr);            break;
1003
 
                case CPUINFO_STR_REGISTER + AM29000_PC0:                sprintf(info->s, "PC0: %08X", am29000->pc0);            break;
1004
 
                case CPUINFO_STR_REGISTER + AM29000_PC1:                sprintf(info->s, "PC1: %08X", am29000->pc1);            break;
1005
 
                case CPUINFO_STR_REGISTER + AM29000_PC2:                sprintf(info->s, "PC2: %08X", am29000->pc2);            break;
1006
 
                case CPUINFO_STR_REGISTER + AM29000_MMU:                sprintf(info->s, "MMU: %08X", am29000->mmu);            break;
1007
 
                case CPUINFO_STR_REGISTER + AM29000_LRU:                sprintf(info->s, "LRU: %08X", am29000->lru);            break;
1008
 
                case CPUINFO_STR_REGISTER + AM29000_IPC:                sprintf(info->s, "IPC: %08X", am29000->ipc);            break;
1009
 
                case CPUINFO_STR_REGISTER + AM29000_IPA:                sprintf(info->s, "IPA: %08X", am29000->ipa);            break;
1010
 
                case CPUINFO_STR_REGISTER + AM29000_IPB:                sprintf(info->s, "IPB: %08X", am29000->ipb);            break;
1011
 
                case CPUINFO_STR_REGISTER + AM29000_Q:                  sprintf(info->s, "Q: %08X", am29000->q);                        break;
1012
 
                case CPUINFO_STR_REGISTER + AM29000_ALU:                sprintf(info->s, "ALU: %08X", am29000->alu);            break;
1013
 
                case CPUINFO_STR_REGISTER + AM29000_BP:                 sprintf(info->s, "BP: %08X", GET_ALU_BP);                       break;
1014
 
                case CPUINFO_STR_REGISTER + AM29000_FC:                 sprintf(info->s, "FC: %08X", GET_ALU_FC);                       break;
1015
 
                case CPUINFO_STR_REGISTER + AM29000_CR:                 sprintf(info->s, "CR: %08X", GET_CHC_CR);                       break;
1016
 
                case CPUINFO_STR_REGISTER + AM29000_FPE:                sprintf(info->s, "FPE: %08X", am29000->fpe);            break;
1017
 
                case CPUINFO_STR_REGISTER + AM29000_INTE:               sprintf(info->s, "INTE: %08X", am29000->inte);          break;
1018
 
                case CPUINFO_STR_REGISTER + AM29000_FPS:                sprintf(info->s, "FPS: %08X", am29000->fps);            break;
1019
 
                case CPUINFO_STR_REGISTER + AM29000_R1:                 sprintf(info->s, "R1: %08X", am29000->r[1]);            break;
1020
 
                case CPUINFO_STR_REGISTER + AM29000_R64:                sprintf(info->s, "R64: %08X", am29000->r[64]);          break;
1021
 
                case CPUINFO_STR_REGISTER + AM29000_R65:                sprintf(info->s, "R65: %08X", am29000->r[65]);          break;
1022
 
                case CPUINFO_STR_REGISTER + AM29000_R66:                sprintf(info->s, "R66: %08X", am29000->r[66]);          break;
1023
 
                case CPUINFO_STR_REGISTER + AM29000_R67:                sprintf(info->s, "R67: %08X", am29000->r[67]);          break;
1024
 
                case CPUINFO_STR_REGISTER + AM29000_R68:                sprintf(info->s, "R68: %08X", am29000->r[68]);          break;
1025
 
                case CPUINFO_STR_REGISTER + AM29000_R69:                sprintf(info->s, "R69: %08X", am29000->r[69]);          break;
1026
 
                case CPUINFO_STR_REGISTER + AM29000_R70:                sprintf(info->s, "R70: %08X", am29000->r[70]);          break;
1027
 
                case CPUINFO_STR_REGISTER + AM29000_R71:                sprintf(info->s, "R71: %08X", am29000->r[71]);          break;
1028
 
                case CPUINFO_STR_REGISTER + AM29000_R72:                sprintf(info->s, "R72: %08X", am29000->r[72]);          break;
1029
 
                case CPUINFO_STR_REGISTER + AM29000_R73:                sprintf(info->s, "R73: %08X", am29000->r[73]);          break;
1030
 
                case CPUINFO_STR_REGISTER + AM29000_R74:                sprintf(info->s, "R74: %08X", am29000->r[74]);          break;
1031
 
                case CPUINFO_STR_REGISTER + AM29000_R75:                sprintf(info->s, "R75: %08X", am29000->r[75]);          break;
1032
 
                case CPUINFO_STR_REGISTER + AM29000_R76:                sprintf(info->s, "R76: %08X", am29000->r[76]);          break;
1033
 
                case CPUINFO_STR_REGISTER + AM29000_R77:                sprintf(info->s, "R77: %08X", am29000->r[77]);          break;
1034
 
                case CPUINFO_STR_REGISTER + AM29000_R78:                sprintf(info->s, "R78: %08X", am29000->r[78]);          break;
1035
 
                case CPUINFO_STR_REGISTER + AM29000_R79:                sprintf(info->s, "R79: %08X", am29000->r[79]);          break;
1036
 
                case CPUINFO_STR_REGISTER + AM29000_R80:                sprintf(info->s, "R80: %08X", am29000->r[80]);          break;
1037
 
                case CPUINFO_STR_REGISTER + AM29000_R81:                sprintf(info->s, "R81: %08X", am29000->r[81]);          break;
1038
 
                case CPUINFO_STR_REGISTER + AM29000_R82:                sprintf(info->s, "R82: %08X", am29000->r[82]);          break;
1039
 
                case CPUINFO_STR_REGISTER + AM29000_R83:                sprintf(info->s, "R83: %08X", am29000->r[83]);          break;
1040
 
                case CPUINFO_STR_REGISTER + AM29000_R84:                sprintf(info->s, "R84: %08X", am29000->r[84]);          break;
1041
 
                case CPUINFO_STR_REGISTER + AM29000_R85:                sprintf(info->s, "R85: %08X", am29000->r[85]);          break;
1042
 
                case CPUINFO_STR_REGISTER + AM29000_R86:                sprintf(info->s, "R86: %08X", am29000->r[86]);          break;
1043
 
                case CPUINFO_STR_REGISTER + AM29000_R87:                sprintf(info->s, "R87: %08X", am29000->r[87]);          break;
1044
 
                case CPUINFO_STR_REGISTER + AM29000_R88:                sprintf(info->s, "R88: %08X", am29000->r[88]);          break;
1045
 
                case CPUINFO_STR_REGISTER + AM29000_R89:                sprintf(info->s, "R89: %08X", am29000->r[89]);          break;
1046
 
                case CPUINFO_STR_REGISTER + AM29000_R90:                sprintf(info->s, "R90: %08X", am29000->r[90]);          break;
1047
 
                case CPUINFO_STR_REGISTER + AM29000_R91:                sprintf(info->s, "R91: %08X", am29000->r[91]);          break;
1048
 
                case CPUINFO_STR_REGISTER + AM29000_R92:                sprintf(info->s, "R92: %08X", am29000->r[92]);          break;
1049
 
                case CPUINFO_STR_REGISTER + AM29000_R93:                sprintf(info->s, "R93: %08X", am29000->r[93]);          break;
1050
 
                case CPUINFO_STR_REGISTER + AM29000_R94:                sprintf(info->s, "R94: %08X", am29000->r[94]);          break;
1051
 
                case CPUINFO_STR_REGISTER + AM29000_R95:                sprintf(info->s, "R95: %08X", am29000->r[95]);          break;
1052
 
                case CPUINFO_STR_REGISTER + AM29000_R96:                sprintf(info->s, "R96: %08X", am29000->r[96]);          break;
1053
 
                case CPUINFO_STR_REGISTER + AM29000_R97:                sprintf(info->s, "R97: %08X", am29000->r[97]);          break;
1054
 
                case CPUINFO_STR_REGISTER + AM29000_R98:                sprintf(info->s, "R98: %08X", am29000->r[98]);          break;
1055
 
                case CPUINFO_STR_REGISTER + AM29000_R99:                sprintf(info->s, "R99: %08X", am29000->r[99]);          break;
1056
 
                case CPUINFO_STR_REGISTER + AM29000_R100:               sprintf(info->s, "R100: %08X", am29000->r[100]);        break;
1057
 
                case CPUINFO_STR_REGISTER + AM29000_R101:               sprintf(info->s, "R101: %08X", am29000->r[101]);        break;
1058
 
                case CPUINFO_STR_REGISTER + AM29000_R102:               sprintf(info->s, "R102: %08X", am29000->r[102]);        break;
1059
 
                case CPUINFO_STR_REGISTER + AM29000_R103:               sprintf(info->s, "R103: %08X", am29000->r[103]);        break;
1060
 
                case CPUINFO_STR_REGISTER + AM29000_R104:               sprintf(info->s, "R104: %08X", am29000->r[104]);        break;
1061
 
                case CPUINFO_STR_REGISTER + AM29000_R105:               sprintf(info->s, "R105: %08X", am29000->r[105]);        break;
1062
 
                case CPUINFO_STR_REGISTER + AM29000_R106:               sprintf(info->s, "R106: %08X", am29000->r[106]);        break;
1063
 
                case CPUINFO_STR_REGISTER + AM29000_R107:               sprintf(info->s, "R107: %08X", am29000->r[107]);        break;
1064
 
                case CPUINFO_STR_REGISTER + AM29000_R108:               sprintf(info->s, "R108: %08X", am29000->r[108]);        break;
1065
 
                case CPUINFO_STR_REGISTER + AM29000_R109:               sprintf(info->s, "R109: %08X", am29000->r[109]);        break;
1066
 
                case CPUINFO_STR_REGISTER + AM29000_R110:               sprintf(info->s, "R110: %08X", am29000->r[110]);        break;
1067
 
                case CPUINFO_STR_REGISTER + AM29000_R111:               sprintf(info->s, "R111: %08X", am29000->r[111]);        break;
1068
 
                case CPUINFO_STR_REGISTER + AM29000_R112:               sprintf(info->s, "R112: %08X", am29000->r[112]);        break;
1069
 
                case CPUINFO_STR_REGISTER + AM29000_R113:               sprintf(info->s, "R113: %08X", am29000->r[113]);        break;
1070
 
                case CPUINFO_STR_REGISTER + AM29000_R114:               sprintf(info->s, "R114: %08X", am29000->r[114]);        break;
1071
 
                case CPUINFO_STR_REGISTER + AM29000_R115:               sprintf(info->s, "R115: %08X", am29000->r[115]);        break;
1072
 
                case CPUINFO_STR_REGISTER + AM29000_R116:               sprintf(info->s, "R116: %08X", am29000->r[116]);        break;
1073
 
                case CPUINFO_STR_REGISTER + AM29000_R117:               sprintf(info->s, "R117: %08X", am29000->r[117]);        break;
1074
 
                case CPUINFO_STR_REGISTER + AM29000_R118:               sprintf(info->s, "R118: %08X", am29000->r[118]);        break;
1075
 
                case CPUINFO_STR_REGISTER + AM29000_R119:               sprintf(info->s, "R119: %08X", am29000->r[119]);        break;
1076
 
                case CPUINFO_STR_REGISTER + AM29000_R120:               sprintf(info->s, "R120: %08X", am29000->r[120]);        break;
1077
 
                case CPUINFO_STR_REGISTER + AM29000_R121:               sprintf(info->s, "R121: %08X", am29000->r[121]);        break;
1078
 
                case CPUINFO_STR_REGISTER + AM29000_R122:               sprintf(info->s, "R122: %08X", am29000->r[122]);        break;
1079
 
                case CPUINFO_STR_REGISTER + AM29000_R123:               sprintf(info->s, "R123: %08X", am29000->r[123]);        break;
1080
 
                case CPUINFO_STR_REGISTER + AM29000_R124:               sprintf(info->s, "R124: %08X", am29000->r[124]);        break;
1081
 
                case CPUINFO_STR_REGISTER + AM29000_R125:               sprintf(info->s, "R125: %08X", am29000->r[125]);        break;
1082
 
                case CPUINFO_STR_REGISTER + AM29000_R126:               sprintf(info->s, "R126: %08X", am29000->r[126]);        break;
1083
 
                case CPUINFO_STR_REGISTER + AM29000_R127:               sprintf(info->s, "R127: %08X", am29000->r[127]);        break;
1084
 
                case CPUINFO_STR_REGISTER + AM29000_R128:               sprintf(info->s, "R128: %08X", am29000->r[128]);        break;
1085
 
                case CPUINFO_STR_REGISTER + AM29000_R129:               sprintf(info->s, "R129: %08X", am29000->r[129]);        break;
1086
 
                case CPUINFO_STR_REGISTER + AM29000_R130:               sprintf(info->s, "R130: %08X", am29000->r[130]);        break;
1087
 
                case CPUINFO_STR_REGISTER + AM29000_R131:               sprintf(info->s, "R131: %08X", am29000->r[131]);        break;
1088
 
                case CPUINFO_STR_REGISTER + AM29000_R132:               sprintf(info->s, "R132: %08X", am29000->r[132]);        break;
1089
 
                case CPUINFO_STR_REGISTER + AM29000_R133:               sprintf(info->s, "R133: %08X", am29000->r[133]);        break;
1090
 
                case CPUINFO_STR_REGISTER + AM29000_R134:               sprintf(info->s, "R134: %08X", am29000->r[134]);        break;
1091
 
                case CPUINFO_STR_REGISTER + AM29000_R135:               sprintf(info->s, "R135: %08X", am29000->r[135]);        break;
1092
 
                case CPUINFO_STR_REGISTER + AM29000_R136:               sprintf(info->s, "R136: %08X", am29000->r[136]);        break;
1093
 
                case CPUINFO_STR_REGISTER + AM29000_R137:               sprintf(info->s, "R137: %08X", am29000->r[137]);        break;
1094
 
                case CPUINFO_STR_REGISTER + AM29000_R138:               sprintf(info->s, "R138: %08X", am29000->r[138]);        break;
1095
 
                case CPUINFO_STR_REGISTER + AM29000_R139:               sprintf(info->s, "R139: %08X", am29000->r[139]);        break;
1096
 
                case CPUINFO_STR_REGISTER + AM29000_R140:               sprintf(info->s, "R140: %08X", am29000->r[140]);        break;
1097
 
                case CPUINFO_STR_REGISTER + AM29000_R141:               sprintf(info->s, "R141: %08X", am29000->r[141]);        break;
1098
 
                case CPUINFO_STR_REGISTER + AM29000_R142:               sprintf(info->s, "R142: %08X", am29000->r[142]);        break;
1099
 
                case CPUINFO_STR_REGISTER + AM29000_R143:               sprintf(info->s, "R143: %08X", am29000->r[143]);        break;
1100
 
                case CPUINFO_STR_REGISTER + AM29000_R144:               sprintf(info->s, "R144: %08X", am29000->r[144]);        break;
1101
 
                case CPUINFO_STR_REGISTER + AM29000_R145:               sprintf(info->s, "R145: %08X", am29000->r[145]);        break;
1102
 
                case CPUINFO_STR_REGISTER + AM29000_R146:               sprintf(info->s, "R146: %08X", am29000->r[146]);        break;
1103
 
                case CPUINFO_STR_REGISTER + AM29000_R147:               sprintf(info->s, "R147: %08X", am29000->r[147]);        break;
1104
 
                case CPUINFO_STR_REGISTER + AM29000_R148:               sprintf(info->s, "R148: %08X", am29000->r[148]);        break;
1105
 
                case CPUINFO_STR_REGISTER + AM29000_R149:               sprintf(info->s, "R149: %08X", am29000->r[149]);        break;
1106
 
                case CPUINFO_STR_REGISTER + AM29000_R150:               sprintf(info->s, "R150: %08X", am29000->r[150]);        break;
1107
 
                case CPUINFO_STR_REGISTER + AM29000_R151:               sprintf(info->s, "R151: %08X", am29000->r[151]);        break;
1108
 
                case CPUINFO_STR_REGISTER + AM29000_R152:               sprintf(info->s, "R152: %08X", am29000->r[152]);        break;
1109
 
                case CPUINFO_STR_REGISTER + AM29000_R153:               sprintf(info->s, "R153: %08X", am29000->r[153]);        break;
1110
 
                case CPUINFO_STR_REGISTER + AM29000_R154:               sprintf(info->s, "R154: %08X", am29000->r[154]);        break;
1111
 
                case CPUINFO_STR_REGISTER + AM29000_R155:               sprintf(info->s, "R155: %08X", am29000->r[155]);        break;
1112
 
                case CPUINFO_STR_REGISTER + AM29000_R156:               sprintf(info->s, "R156: %08X", am29000->r[156]);        break;
1113
 
                case CPUINFO_STR_REGISTER + AM29000_R157:               sprintf(info->s, "R157: %08X", am29000->r[157]);        break;
1114
 
                case CPUINFO_STR_REGISTER + AM29000_R158:               sprintf(info->s, "R158: %08X", am29000->r[158]);        break;
1115
 
                case CPUINFO_STR_REGISTER + AM29000_R159:               sprintf(info->s, "R159: %08X", am29000->r[159]);        break;
1116
 
                case CPUINFO_STR_REGISTER + AM29000_R160:               sprintf(info->s, "R160: %08X", am29000->r[160]);        break;
1117
 
                case CPUINFO_STR_REGISTER + AM29000_R161:               sprintf(info->s, "R161: %08X", am29000->r[161]);        break;
1118
 
                case CPUINFO_STR_REGISTER + AM29000_R162:               sprintf(info->s, "R162: %08X", am29000->r[162]);        break;
1119
 
                case CPUINFO_STR_REGISTER + AM29000_R163:               sprintf(info->s, "R163: %08X", am29000->r[163]);        break;
1120
 
                case CPUINFO_STR_REGISTER + AM29000_R164:               sprintf(info->s, "R164: %08X", am29000->r[164]);        break;
1121
 
                case CPUINFO_STR_REGISTER + AM29000_R165:               sprintf(info->s, "R165: %08X", am29000->r[165]);        break;
1122
 
                case CPUINFO_STR_REGISTER + AM29000_R166:               sprintf(info->s, "R166: %08X", am29000->r[166]);        break;
1123
 
                case CPUINFO_STR_REGISTER + AM29000_R167:               sprintf(info->s, "R167: %08X", am29000->r[167]);        break;
1124
 
                case CPUINFO_STR_REGISTER + AM29000_R168:               sprintf(info->s, "R168: %08X", am29000->r[168]);        break;
1125
 
                case CPUINFO_STR_REGISTER + AM29000_R169:               sprintf(info->s, "R169: %08X", am29000->r[169]);        break;
1126
 
                case CPUINFO_STR_REGISTER + AM29000_R170:               sprintf(info->s, "R170: %08X", am29000->r[170]);        break;
1127
 
                case CPUINFO_STR_REGISTER + AM29000_R171:               sprintf(info->s, "R171: %08X", am29000->r[171]);        break;
1128
 
                case CPUINFO_STR_REGISTER + AM29000_R172:               sprintf(info->s, "R172: %08X", am29000->r[172]);        break;
1129
 
                case CPUINFO_STR_REGISTER + AM29000_R173:               sprintf(info->s, "R173: %08X", am29000->r[173]);        break;
1130
 
                case CPUINFO_STR_REGISTER + AM29000_R174:               sprintf(info->s, "R174: %08X", am29000->r[174]);        break;
1131
 
                case CPUINFO_STR_REGISTER + AM29000_R175:               sprintf(info->s, "R175: %08X", am29000->r[175]);        break;
1132
 
                case CPUINFO_STR_REGISTER + AM29000_R176:               sprintf(info->s, "R176: %08X", am29000->r[176]);        break;
1133
 
                case CPUINFO_STR_REGISTER + AM29000_R177:               sprintf(info->s, "R177: %08X", am29000->r[177]);        break;
1134
 
                case CPUINFO_STR_REGISTER + AM29000_R178:               sprintf(info->s, "R178: %08X", am29000->r[178]);        break;
1135
 
                case CPUINFO_STR_REGISTER + AM29000_R179:               sprintf(info->s, "R179: %08X", am29000->r[179]);        break;
1136
 
                case CPUINFO_STR_REGISTER + AM29000_R180:               sprintf(info->s, "R180: %08X", am29000->r[180]);        break;
1137
 
                case CPUINFO_STR_REGISTER + AM29000_R181:               sprintf(info->s, "R181: %08X", am29000->r[181]);        break;
1138
 
                case CPUINFO_STR_REGISTER + AM29000_R182:               sprintf(info->s, "R182: %08X", am29000->r[182]);        break;
1139
 
                case CPUINFO_STR_REGISTER + AM29000_R183:               sprintf(info->s, "R183: %08X", am29000->r[183]);        break;
1140
 
                case CPUINFO_STR_REGISTER + AM29000_R184:               sprintf(info->s, "R184: %08X", am29000->r[184]);        break;
1141
 
                case CPUINFO_STR_REGISTER + AM29000_R185:               sprintf(info->s, "R185: %08X", am29000->r[185]);        break;
1142
 
                case CPUINFO_STR_REGISTER + AM29000_R186:               sprintf(info->s, "R186: %08X", am29000->r[186]);        break;
1143
 
                case CPUINFO_STR_REGISTER + AM29000_R187:               sprintf(info->s, "R187: %08X", am29000->r[187]);        break;
1144
 
                case CPUINFO_STR_REGISTER + AM29000_R188:               sprintf(info->s, "R188: %08X", am29000->r[188]);        break;
1145
 
                case CPUINFO_STR_REGISTER + AM29000_R189:               sprintf(info->s, "R189: %08X", am29000->r[189]);        break;
1146
 
                case CPUINFO_STR_REGISTER + AM29000_R190:               sprintf(info->s, "R190: %08X", am29000->r[190]);        break;
1147
 
                case CPUINFO_STR_REGISTER + AM29000_R191:               sprintf(info->s, "R191: %08X", am29000->r[191]);        break;
1148
 
                case CPUINFO_STR_REGISTER + AM29000_R192:               sprintf(info->s, "R192: %08X", am29000->r[192]);        break;
1149
 
                case CPUINFO_STR_REGISTER + AM29000_R193:               sprintf(info->s, "R193: %08X", am29000->r[193]);        break;
1150
 
                case CPUINFO_STR_REGISTER + AM29000_R194:               sprintf(info->s, "R194: %08X", am29000->r[194]);        break;
1151
 
                case CPUINFO_STR_REGISTER + AM29000_R195:               sprintf(info->s, "R195: %08X", am29000->r[195]);        break;
1152
 
                case CPUINFO_STR_REGISTER + AM29000_R196:               sprintf(info->s, "R196: %08X", am29000->r[196]);        break;
1153
 
                case CPUINFO_STR_REGISTER + AM29000_R197:               sprintf(info->s, "R197: %08X", am29000->r[197]);        break;
1154
 
                case CPUINFO_STR_REGISTER + AM29000_R198:               sprintf(info->s, "R198: %08X", am29000->r[198]);        break;
1155
 
                case CPUINFO_STR_REGISTER + AM29000_R199:               sprintf(info->s, "R199: %08X", am29000->r[199]);        break;
1156
 
                case CPUINFO_STR_REGISTER + AM29000_R200:               sprintf(info->s, "R200: %08X", am29000->r[200]);        break;
1157
 
                case CPUINFO_STR_REGISTER + AM29000_R201:               sprintf(info->s, "R201: %08X", am29000->r[201]);        break;
1158
 
                case CPUINFO_STR_REGISTER + AM29000_R202:               sprintf(info->s, "R202: %08X", am29000->r[202]);        break;
1159
 
                case CPUINFO_STR_REGISTER + AM29000_R203:               sprintf(info->s, "R203: %08X", am29000->r[203]);        break;
1160
 
                case CPUINFO_STR_REGISTER + AM29000_R204:               sprintf(info->s, "R204: %08X", am29000->r[204]);        break;
1161
 
                case CPUINFO_STR_REGISTER + AM29000_R205:               sprintf(info->s, "R205: %08X", am29000->r[205]);        break;
1162
 
                case CPUINFO_STR_REGISTER + AM29000_R206:               sprintf(info->s, "R206: %08X", am29000->r[206]);        break;
1163
 
                case CPUINFO_STR_REGISTER + AM29000_R207:               sprintf(info->s, "R207: %08X", am29000->r[207]);        break;
1164
 
                case CPUINFO_STR_REGISTER + AM29000_R208:               sprintf(info->s, "R208: %08X", am29000->r[208]);        break;
1165
 
                case CPUINFO_STR_REGISTER + AM29000_R209:               sprintf(info->s, "R209: %08X", am29000->r[209]);        break;
1166
 
                case CPUINFO_STR_REGISTER + AM29000_R210:               sprintf(info->s, "R210: %08X", am29000->r[210]);        break;
1167
 
                case CPUINFO_STR_REGISTER + AM29000_R211:               sprintf(info->s, "R211: %08X", am29000->r[211]);        break;
1168
 
                case CPUINFO_STR_REGISTER + AM29000_R212:               sprintf(info->s, "R212: %08X", am29000->r[212]);        break;
1169
 
                case CPUINFO_STR_REGISTER + AM29000_R213:               sprintf(info->s, "R213: %08X", am29000->r[213]);        break;
1170
 
                case CPUINFO_STR_REGISTER + AM29000_R214:               sprintf(info->s, "R214: %08X", am29000->r[214]);        break;
1171
 
                case CPUINFO_STR_REGISTER + AM29000_R215:               sprintf(info->s, "R215: %08X", am29000->r[215]);        break;
1172
 
                case CPUINFO_STR_REGISTER + AM29000_R216:               sprintf(info->s, "R216: %08X", am29000->r[216]);        break;
1173
 
                case CPUINFO_STR_REGISTER + AM29000_R217:               sprintf(info->s, "R217: %08X", am29000->r[217]);        break;
1174
 
                case CPUINFO_STR_REGISTER + AM29000_R218:               sprintf(info->s, "R218: %08X", am29000->r[218]);        break;
1175
 
                case CPUINFO_STR_REGISTER + AM29000_R219:               sprintf(info->s, "R219: %08X", am29000->r[219]);        break;
1176
 
                case CPUINFO_STR_REGISTER + AM29000_R220:               sprintf(info->s, "R220: %08X", am29000->r[220]);        break;
1177
 
                case CPUINFO_STR_REGISTER + AM29000_R221:               sprintf(info->s, "R221: %08X", am29000->r[221]);        break;
1178
 
                case CPUINFO_STR_REGISTER + AM29000_R222:               sprintf(info->s, "R222: %08X", am29000->r[222]);        break;
1179
 
                case CPUINFO_STR_REGISTER + AM29000_R223:               sprintf(info->s, "R223: %08X", am29000->r[223]);        break;
1180
 
                case CPUINFO_STR_REGISTER + AM29000_R224:               sprintf(info->s, "R224: %08X", am29000->r[224]);        break;
1181
 
                case CPUINFO_STR_REGISTER + AM29000_R225:               sprintf(info->s, "R225: %08X", am29000->r[225]);        break;
1182
 
                case CPUINFO_STR_REGISTER + AM29000_R226:               sprintf(info->s, "R226: %08X", am29000->r[226]);        break;
1183
 
                case CPUINFO_STR_REGISTER + AM29000_R227:               sprintf(info->s, "R227: %08X", am29000->r[227]);        break;
1184
 
                case CPUINFO_STR_REGISTER + AM29000_R228:               sprintf(info->s, "R228: %08X", am29000->r[228]);        break;
1185
 
                case CPUINFO_STR_REGISTER + AM29000_R229:               sprintf(info->s, "R229: %08X", am29000->r[229]);        break;
1186
 
                case CPUINFO_STR_REGISTER + AM29000_R230:               sprintf(info->s, "R230: %08X", am29000->r[230]);        break;
1187
 
                case CPUINFO_STR_REGISTER + AM29000_R231:               sprintf(info->s, "R231: %08X", am29000->r[231]);        break;
1188
 
                case CPUINFO_STR_REGISTER + AM29000_R232:               sprintf(info->s, "R232: %08X", am29000->r[232]);        break;
1189
 
                case CPUINFO_STR_REGISTER + AM29000_R233:               sprintf(info->s, "R233: %08X", am29000->r[233]);        break;
1190
 
                case CPUINFO_STR_REGISTER + AM29000_R234:               sprintf(info->s, "R234: %08X", am29000->r[234]);        break;
1191
 
                case CPUINFO_STR_REGISTER + AM29000_R235:               sprintf(info->s, "R235: %08X", am29000->r[235]);        break;
1192
 
                case CPUINFO_STR_REGISTER + AM29000_R236:               sprintf(info->s, "R236: %08X", am29000->r[236]);        break;
1193
 
                case CPUINFO_STR_REGISTER + AM29000_R237:               sprintf(info->s, "R237: %08X", am29000->r[237]);        break;
1194
 
                case CPUINFO_STR_REGISTER + AM29000_R238:               sprintf(info->s, "R238: %08X", am29000->r[238]);        break;
1195
 
                case CPUINFO_STR_REGISTER + AM29000_R239:               sprintf(info->s, "R239: %08X", am29000->r[239]);        break;
1196
 
                case CPUINFO_STR_REGISTER + AM29000_R240:               sprintf(info->s, "R240: %08X", am29000->r[240]);        break;
1197
 
                case CPUINFO_STR_REGISTER + AM29000_R241:               sprintf(info->s, "R241: %08X", am29000->r[241]);        break;
1198
 
                case CPUINFO_STR_REGISTER + AM29000_R242:               sprintf(info->s, "R242: %08X", am29000->r[242]);        break;
1199
 
                case CPUINFO_STR_REGISTER + AM29000_R243:               sprintf(info->s, "R243: %08X", am29000->r[243]);        break;
1200
 
                case CPUINFO_STR_REGISTER + AM29000_R244:               sprintf(info->s, "R244: %08X", am29000->r[244]);        break;
1201
 
                case CPUINFO_STR_REGISTER + AM29000_R245:               sprintf(info->s, "R245: %08X", am29000->r[245]);        break;
1202
 
                case CPUINFO_STR_REGISTER + AM29000_R246:               sprintf(info->s, "R246: %08X", am29000->r[246]);        break;
1203
 
                case CPUINFO_STR_REGISTER + AM29000_R247:               sprintf(info->s, "R247: %08X", am29000->r[247]);        break;
1204
 
                case CPUINFO_STR_REGISTER + AM29000_R248:               sprintf(info->s, "R248: %08X", am29000->r[248]);        break;
1205
 
                case CPUINFO_STR_REGISTER + AM29000_R249:               sprintf(info->s, "R249: %08X", am29000->r[249]);        break;
1206
 
                case CPUINFO_STR_REGISTER + AM29000_R250:               sprintf(info->s, "R250: %08X", am29000->r[250]);        break;
1207
 
                case CPUINFO_STR_REGISTER + AM29000_R251:               sprintf(info->s, "R251: %08X", am29000->r[251]);        break;
1208
 
                case CPUINFO_STR_REGISTER + AM29000_R252:               sprintf(info->s, "R252: %08X", am29000->r[252]);        break;
1209
 
                case CPUINFO_STR_REGISTER + AM29000_R253:               sprintf(info->s, "R253: %08X", am29000->r[253]);        break;
1210
 
                case CPUINFO_STR_REGISTER + AM29000_R254:               sprintf(info->s, "R254: %08X", am29000->r[254]);        break;
1211
 
                case CPUINFO_STR_REGISTER + AM29000_R255:               sprintf(info->s, "R255: %08X", am29000->r[255]);        break;
1212
 
        }
1213
 
}
1214
 
 
1215
 
 
1216
 
DEFINE_LEGACY_CPU_DEVICE(AM29000, am29000);