ths [Mon, 8 Oct 2007 12:46:58 +0000 (12:46 +0000)]
Wire up CRIS disassembler, by Edgar E. Iglesias.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3357
c046a42c-6fe2-441c-8c8c-
71466251a162
ths [Mon, 8 Oct 2007 12:45:38 +0000 (12:45 +0000)]
CRIS disassembler, originally from binutils, by Edgar E. Iglesias.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3356
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Mon, 8 Oct 2007 03:00:35 +0000 (03:00 +0000)]
Update PowerPC emulation status file.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3355
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Mon, 8 Oct 2007 02:58:07 +0000 (02:58 +0000)]
Remove synonymous in PowerPC MSR bits definitions.
Fix MSR EP bit buggy definition.
Remove unuseful MSR flags.
Fix MSR bits and flags definitions for most supported PowerPC implementations.
Add MSR definitions/flags constistency checks and optional dump.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3354
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Mon, 8 Oct 2007 02:44:11 +0000 (02:44 +0000)]
Real-mode only PowerPC 40x do not have any TLBs.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3353
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Mon, 8 Oct 2007 02:35:41 +0000 (02:35 +0000)]
Implement exception prefix feature for PowerPC 601.
Fix PowerPC 601 hardware reset vector.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3352
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Mon, 8 Oct 2007 02:23:00 +0000 (02:23 +0000)]
Add missing exception vectors for PowerPC 7x5.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3351
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 7 Oct 2007 23:10:08 +0000 (23:10 +0000)]
Work-around C89 and/or "old" gcc unspecified behavior (#if in macro calls).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3350
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 7 Oct 2007 18:19:26 +0000 (18:19 +0000)]
Implement PowerPC Altivec load & stores, used by Apple firmware for memcpy.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3349
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 7 Oct 2007 17:30:34 +0000 (17:30 +0000)]
PowerPC target coding style fixes.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3348
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 7 Oct 2007 17:13:44 +0000 (17:13 +0000)]
PowerPC target optimisations: make intensive use of always_inline.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3347
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 7 Oct 2007 16:07:25 +0000 (16:07 +0000)]
Report missing elf_addr_t definition from Linux kernel header
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3346
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 7 Oct 2007 16:06:13 +0000 (16:06 +0000)]
Fix host and target longs confusions (continued).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3345
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 7 Oct 2007 15:59:45 +0000 (15:59 +0000)]
Fix confusions between host and target long types.
Fix start_data computation.
Fix auxiliary infos setup.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3344
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 7 Oct 2007 15:43:50 +0000 (15:43 +0000)]
Reorganize the CPUPPCState structure to group features.
Add #ifdef to avoid compiling not relevant resources:
- MMU related stuff for user-mode only targets
- PowerPC 64 only resources for PowerPC 32 targets
- embedded PowerPC extensions for non-ppcemb targets.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3343
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 7 Oct 2007 14:41:00 +0000 (14:41 +0000)]
Add MSR bits signification per PowerPC implementation flags (to be continued).
As a side effect, single step and branch step are available again.
Remove irrelevant MSR bits definitions.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3342
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 7 Oct 2007 14:25:11 +0000 (14:25 +0000)]
Share devices that may be useful for all PowerPC 40x and 440 implementations.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3341
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 7 Oct 2007 14:21:26 +0000 (14:21 +0000)]
Share devices that might be useful for all PowerPC 40x & 440 implementations
(mostly CPU registration and UIC, for now).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3340
c046a42c-6fe2-441c-8c8c-
71466251a162
blueswir1 [Sun, 7 Oct 2007 10:00:55 +0000 (10:00 +0000)]
More user timer fixes (Robert Reif)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3339
c046a42c-6fe2-441c-8c8c-
71466251a162
blueswir1 [Sat, 6 Oct 2007 11:28:21 +0000 (11:28 +0000)]
More detabification
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3338
c046a42c-6fe2-441c-8c8c-
71466251a162
blueswir1 [Sat, 6 Oct 2007 11:25:43 +0000 (11:25 +0000)]
Implement user mode for timers
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3337
c046a42c-6fe2-441c-8c8c-
71466251a162
blueswir1 [Sat, 6 Oct 2007 11:24:18 +0000 (11:24 +0000)]
Support for loading a real BIOS image (Robert Reif)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3336
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Fri, 5 Oct 2007 22:06:02 +0000 (22:06 +0000)]
Full implementation of PowerPC 64 MMU, just missing support for 1 TB
memory segments.
Remove the PowerPC 64 "bridge" MMU model and implement segment registers
emulation using SLB entries instead.
Make SLB area size implementation dependant.
Improve TLB & SLB search debug traces.
Temporary hack to make PowerPC 970 boot from ROM instead of RAM.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3335
c046a42c-6fe2-441c-8c8c-
71466251a162
blueswir1 [Fri, 5 Oct 2007 17:01:51 +0000 (17:01 +0000)]
Implement sparc64_[gs]et_context
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3334
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Fri, 5 Oct 2007 13:11:25 +0000 (13:11 +0000)]
Rename PowerPC MMUCSR0 and MMUCFG SPRs: those are not BookE specific.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3333
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Fri, 5 Oct 2007 13:09:54 +0000 (13:09 +0000)]
PowerPC hardware reset vector is now considered as part of the exception model.
Use it at CPU initialisation time.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3332
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Fri, 5 Oct 2007 13:08:35 +0000 (13:08 +0000)]
New '-bios' option, used to select an alternate BIOS image from bios_dir.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3331
c046a42c-6fe2-441c-8c8c-
71466251a162
balrog [Thu, 4 Oct 2007 23:45:31 +0000 (23:45 +0000)]
Implement PL110 byte order config bit (original patch by Richard Purdie).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3330
c046a42c-6fe2-441c-8c8c-
71466251a162
balrog [Thu, 4 Oct 2007 22:55:53 +0000 (22:55 +0000)]
Quiet warnings introduced with the USB iso support.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3329
c046a42c-6fe2-441c-8c8c-
71466251a162
balrog [Thu, 4 Oct 2007 22:47:34 +0000 (22:47 +0000)]
USB iso transfers support for the linux redirector and for UHCI, by Arnon Gilboa.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3328
c046a42c-6fe2-441c-8c8c-
71466251a162
balrog [Thu, 4 Oct 2007 21:53:55 +0000 (21:53 +0000)]
sh775x interrupt controller by Magnus Damm.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3327
c046a42c-6fe2-441c-8c8c-
71466251a162
balrog [Thu, 4 Oct 2007 19:59:04 +0000 (19:59 +0000)]
Remove redundant qemu_rearm_alarm_timer() in qemu_del_timer, patch by Dan Kenigsberg.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3326
c046a42c-6fe2-441c-8c8c-
71466251a162
balrog [Thu, 4 Oct 2007 19:47:09 +0000 (19:47 +0000)]
(int64_t)UINT64_MAX is -1 and should not be assigned to nearest_delta_us, patch by Dan Kenigsberg.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3325
c046a42c-6fe2-441c-8c8c-
71466251a162
balrog [Thu, 4 Oct 2007 19:41:17 +0000 (19:41 +0000)]
Several corrections in the spitzkbd keymap (patch by Juergen Lock).
Don't abort on illegal GPSR reads, instead only warn.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3324
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Thu, 4 Oct 2007 01:54:44 +0000 (01:54 +0000)]
We must reset the PowerPC CPU _after_ registering it, as hardware reset
effect is implementation dependant.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3323
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Thu, 4 Oct 2007 01:50:03 +0000 (01:50 +0000)]
More cache tuning fixes:
* fix the tunable cache line size probe for PowerPC 970.
* initialize HID5 so cache line is 32 bytes long when running in user-mode only
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3322
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Thu, 4 Oct 2007 00:51:58 +0000 (00:51 +0000)]
Make PowerPC cache line size implementation dependant.
Implement dcbz tunable cache line size for PowerPC 970.
Make hardware reset vector implementation dependant.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3321
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Wed, 3 Oct 2007 20:27:44 +0000 (20:27 +0000)]
HID0 is a write-clear register on 970 (DBSR).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3320
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Wed, 3 Oct 2007 20:19:40 +0000 (20:19 +0000)]
Enable PowerPC 64 MMU model and exceptions.
Cleanups in MMU exceptions generation.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3319
c046a42c-6fe2-441c-8c8c-
71466251a162
blueswir1 [Wed, 3 Oct 2007 17:46:29 +0000 (17:46 +0000)]
Fix Sparc64 ldfa/stfa and float ops with fpr >= 32
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3318
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Wed, 3 Oct 2007 01:06:57 +0000 (01:06 +0000)]
Fix PowerPC initialisation and first reset:
reset must occur after we defined the CPU features.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3317
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Wed, 3 Oct 2007 01:05:39 +0000 (01:05 +0000)]
We never have to export ppc_set_irq.
Protect PowerPC 64 only features with #ifdef (TARGET_PPC64)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3316
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Wed, 3 Oct 2007 01:04:20 +0000 (01:04 +0000)]
Fix PowerPC 405 BIOS instanciation: is a 32 bits only target.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3315
c046a42c-6fe2-441c-8c8c-
71466251a162
blueswir1 [Tue, 2 Oct 2007 19:15:48 +0000 (19:15 +0000)]
Fix kernel loading
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3314
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Tue, 2 Oct 2007 10:11:50 +0000 (10:11 +0000)]
Code provision for hypervisor mode memory accesses.
Add comments in load & store tables to ease code reading.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3313
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Mon, 1 Oct 2007 21:51:40 +0000 (21:51 +0000)]
Fix nasty sign-extensions when running 32 bits CPU in the 64 bits emulator
on 32 bits hosts.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3312
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Mon, 1 Oct 2007 21:49:57 +0000 (21:49 +0000)]
Fix reproductible crash: call cpu_loop_exit from micro-op, not from helper.c
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3311
c046a42c-6fe2-441c-8c8c-
71466251a162
blueswir1 [Mon, 1 Oct 2007 17:07:58 +0000 (17:07 +0000)]
Fix block load ASIs
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3310
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Mon, 1 Oct 2007 06:44:33 +0000 (06:44 +0000)]
Quickly hack PowerPC BIOS able to boot on CDROM again.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3309
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Mon, 1 Oct 2007 05:22:17 +0000 (05:22 +0000)]
Fix missing nip updates for instructions that potentially generate
exceptions from op helpers.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3308
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Mon, 1 Oct 2007 05:16:57 +0000 (05:16 +0000)]
Handle all MMU models in switches, even if it's just to abort because of lack
of supporting code.
Implement 74xx software TLB model.
Keep 74xx with software TLB disabled, as Linux is not able to handle TLB miss
on those processors.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3307
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Mon, 1 Oct 2007 04:48:45 +0000 (04:48 +0000)]
More comments about unimplemented SPRs.
Tag unused functions with unused attribute instead of using #ifdef (TODO)
to ease tests: just have to enable the implementation in the cpu_defs table.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3306
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Mon, 1 Oct 2007 03:03:51 +0000 (03:03 +0000)]
Optimisations: avoid generation of duplicated micro-ops.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3305
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Mon, 1 Oct 2007 02:55:07 +0000 (02:55 +0000)]
Compilation fix (forgotten patch).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3304
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Mon, 1 Oct 2007 01:59:12 +0000 (01:59 +0000)]
Remove definitions for deprecated SLB & TLB related op helpers.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3303
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Mon, 1 Oct 2007 01:51:12 +0000 (01:51 +0000)]
Avoid op helpers that would just call helpers for TLB & SLB management:
call the helpers directly from the micro-ops.
Avoid duplicated code for tlbsx. implementation.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3302
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Mon, 1 Oct 2007 01:38:03 +0000 (01:38 +0000)]
Share more SPR instanciations between all PowerPC 401 incarnations.
Add comments about some unimplemented storage control dedicated SPRs.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3301
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Mon, 1 Oct 2007 01:32:49 +0000 (01:32 +0000)]
Implement embedded PowerPC exceptions prefix and vectors registers.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3300
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Mon, 1 Oct 2007 01:27:10 +0000 (01:27 +0000)]
Share input pins and internal interrupt controller between all PowerPC 40x.
Fix critical input interrupt generation.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3299
c046a42c-6fe2-441c-8c8c-
71466251a162
blueswir1 [Sun, 30 Sep 2007 19:38:12 +0000 (19:38 +0000)]
Fix Sparc64 ldfa, lddfa, stfa, and stdfa instructions
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3298
c046a42c-6fe2-441c-8c8c-
71466251a162
blueswir1 [Sun, 30 Sep 2007 16:37:00 +0000 (16:37 +0000)]
Fix Sparc64 wrasr instructions
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3297
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 30 Sep 2007 15:21:15 +0000 (15:21 +0000)]
Fix (once again) PowerPC sync weight field.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3296
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 30 Sep 2007 15:19:48 +0000 (15:19 +0000)]
Fix PowerPC TLB miss dump code.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3295
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 30 Sep 2007 15:15:18 +0000 (15:15 +0000)]
Fix missing case in the new PowerPC exception model.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3294
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 30 Sep 2007 14:52:08 +0000 (14:52 +0000)]
Fix inconsistent end conditions in ppc_find_xxx functions.
(crash reported by Andreas Farber when using default CPU).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3293
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 30 Sep 2007 14:44:52 +0000 (14:44 +0000)]
Fix compilation on Darwin platform, avoiding the use of gcc function attributes
(problem reported by Andreas Farber).
: ----------------------------------------------------------------------
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3292
c046a42c-6fe2-441c-8c8c-
71466251a162
ths [Sun, 30 Sep 2007 14:32:45 +0000 (14:32 +0000)]
Fix mmap to handle differing host/target page sizes, by Edgar E. Iglesias.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3291
c046a42c-6fe2-441c-8c8c-
71466251a162
ths [Sun, 30 Sep 2007 13:49:22 +0000 (13:49 +0000)]
Add get_sp_from_cpustate implementation.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3290
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 30 Sep 2007 13:03:23 +0000 (13:03 +0000)]
* Update OEA environment, following the PowerPC 2.04 specification:
- New mtmsr/mtmsrd form that just update RI and EE bits
- New hrfid, lq and stq instructions
- Add support for supervisor and hypervisor modes process priority update
- Code provision for hypervisor SPR accesses
* Actually implement the wait instruction
* Bugfixes (missing RETURN in micro-op / missing #ifdef)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3289
c046a42c-6fe2-441c-8c8c-
71466251a162
ths [Sun, 30 Sep 2007 13:01:15 +0000 (13:01 +0000)]
Support UltraVNC clients, by Eduardo Felipe.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3288
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 30 Sep 2007 03:46:38 +0000 (03:46 +0000)]
Synchronize with latest PowerPC ISA VEA:
* fix invalid instructions bits masks
* new wait instruction
* more comments about effect of cache instructions on the MMU
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3287
c046a42c-6fe2-441c-8c8c-
71466251a162
ths [Sun, 30 Sep 2007 02:14:03 +0000 (02:14 +0000)]
Add mipsn32{,el}-linux-user.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3286
c046a42c-6fe2-441c-8c8c-
71466251a162
ths [Sun, 30 Sep 2007 02:10:37 +0000 (02:10 +0000)]
Remove unused variable.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3285
c046a42c-6fe2-441c-8c8c-
71466251a162
ths [Sun, 30 Sep 2007 01:58:33 +0000 (01:58 +0000)]
Code provision for n32/n64 mips userland emulation. Not functional yet.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3284
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 30 Sep 2007 01:29:07 +0000 (01:29 +0000)]
Avoid crash on NULL timers.
This is a rework of Stefan Weil proposed patch.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3283
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 30 Sep 2007 01:18:26 +0000 (01:18 +0000)]
Implement Process Priority Register as defined in the PowerPC 2.04 spec.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3282
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 30 Sep 2007 01:11:48 +0000 (01:11 +0000)]
Implement new floating-point instructions (fre, frin, friz, frip, frim)
as defined in the PowerPC 2.04 specification.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3281
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 30 Sep 2007 01:01:08 +0000 (01:01 +0000)]
Improve single-precision floats load & stores:
as the PowerPC registers only store double-precision floats,
use float64_to_float32 & float32_to_float64 to do the appropriate conversion.
Implement stfiwx.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3280
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 30 Sep 2007 00:50:23 +0000 (00:50 +0000)]
XER is to be treated as a 64 bits register on 64 bits implementations,
according to the PowerPC 2.04 specification.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3279
c046a42c-6fe2-441c-8c8c-
71466251a162
ths [Sun, 30 Sep 2007 00:45:51 +0000 (00:45 +0000)]
Update TODO.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3278
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sun, 30 Sep 2007 00:38:38 +0000 (00:38 +0000)]
Implement the PowerPC alternate time-base, following the 2.04 specification.
Share most code with the time-base management routines.
Remove time-base write routines from user-mode emulation environments.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3277
c046a42c-6fe2-441c-8c8c-
71466251a162
ths [Sat, 29 Sep 2007 21:22:33 +0000 (21:22 +0000)]
Don't hardcode the host architecture name.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3276
c046a42c-6fe2-441c-8c8c-
71466251a162
ths [Sat, 29 Sep 2007 21:18:26 +0000 (21:18 +0000)]
Update tarbin rule.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3275
c046a42c-6fe2-441c-8c8c-
71466251a162
ths [Sat, 29 Sep 2007 19:55:21 +0000 (19:55 +0000)]
Enable sh4-softmmu and sh4-linux-user builds by default, by Magnus Damm.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3274
c046a42c-6fe2-441c-8c8c-
71466251a162
ths [Sat, 29 Sep 2007 19:52:22 +0000 (19:52 +0000)]
Fix rte opcode, by Magnus Damm.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3273
c046a42c-6fe2-441c-8c8c-
71466251a162
ths [Sat, 29 Sep 2007 19:51:40 +0000 (19:51 +0000)]
Add FRQCR read support, by Magnus Damm.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3272
c046a42c-6fe2-441c-8c8c-
71466251a162
ths [Sat, 29 Sep 2007 19:47:44 +0000 (19:47 +0000)]
Add INTC controller prototype, by Magnus Damm.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3271
c046a42c-6fe2-441c-8c8c-
71466251a162
ths [Sat, 29 Sep 2007 19:43:54 +0000 (19:43 +0000)]
Stand-alone SCI/SCIF emulation code, by Magnus Damm.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3270
c046a42c-6fe2-441c-8c8c-
71466251a162
ths [Sat, 29 Sep 2007 19:40:09 +0000 (19:40 +0000)]
Stand-alone TMU emulation code, by Magnus Damm.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3269
c046a42c-6fe2-441c-8c8c-
71466251a162
ths [Sat, 29 Sep 2007 19:24:41 +0000 (19:24 +0000)]
Add R2D-PLUS support, by Magnus Damm.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3268
c046a42c-6fe2-441c-8c8c-
71466251a162
ths [Sat, 29 Sep 2007 19:21:36 +0000 (19:21 +0000)]
Supervisor mode implementation, by Aurelien Jarno.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3267
c046a42c-6fe2-441c-8c8c-
71466251a162
ths [Sat, 29 Sep 2007 19:19:59 +0000 (19:19 +0000)]
Less magic constants.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3266
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sat, 29 Sep 2007 15:02:38 +0000 (15:02 +0000)]
PowerPC emulation optimization:
avoid stopping translation after most SPR updates
when a context-synchronization instruction is also needed.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3265
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sat, 29 Sep 2007 13:21:37 +0000 (13:21 +0000)]
Code provision for hypervisor timers resources,
as described in PowerPC 2.04 specification.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3264
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sat, 29 Sep 2007 13:20:12 +0000 (13:20 +0000)]
Fix PowerPC target objects dependencies
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3263
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sat, 29 Sep 2007 13:12:58 +0000 (13:12 +0000)]
Provision for x86_64-linux-user target: needs get_sp_from_cpustate
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3262
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sat, 29 Sep 2007 13:06:16 +0000 (13:06 +0000)]
Rework PowerPC exceptions model to make it more versatile:
* don't use exception vectors as the exception number.
Use vectors numbers as defined in the PowerPC embedded specification instead
and extend this model to cover all emulated PowerPC variants exceptions.
* add some missing exceptions definitions, from PowerPC 2.04 specification
and actual PowerPC implementations.
* add code provision for hypervisor exceptions handling.
* define exception vectors and prefix in CPUPPCState to emulate BookE exception
vectors without any hacks.
* define per CPU model valid exception vectors.
* handle all known exceptions in user-mode only emulations.
* fix hardware interrupts priorities in most cases.
* change RET_EXCP macros name into GEN_EXCP as they don't return.
* do not stop translation on most instructions that are not defined as
context-synchronizing in PowerPC specification.
* fix PowerPC 64 jump targets and link register update when in 32 bits mode.
* Fix PowerPC 464 and 464F definitions.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3261
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sat, 29 Sep 2007 12:18:20 +0000 (12:18 +0000)]
make cpu_abort dump cpu state in logfile, which is useful for debugging.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3260
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sat, 29 Sep 2007 12:17:25 +0000 (12:17 +0000)]
always_inline gcc directive can be useful.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3259
c046a42c-6fe2-441c-8c8c-
71466251a162
j_mayer [Sat, 29 Sep 2007 12:15:39 +0000 (12:15 +0000)]
host_utils.o may also be useful for user-mode emulation.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3258
c046a42c-6fe2-441c-8c8c-
71466251a162