1e6784f960Fix PowerPC TLB miss dump code.
j_mayer
2007-09-30 15:19:48 +00:00
56ba31ff0bFix missing case in the new PowerPC exception model.
j_mayer
2007-09-30 15:15:18 +00:00
068abdc8a5Fix inconsistent end conditions in ppc_find_xxx functions. (crash reported by Andreas Farber when using default CPU).
j_mayer
2007-09-30 14:52:08 +00:00
8a84de23b8Fix compilation on Darwin platform, avoiding the use of gcc function attributes (problem reported by Andreas Farber). : ----------------------------------------------------------------------
j_mayer
2007-09-30 14:44:52 +00:00
a5b85f7959Fix mmap to handle differing host/target page sizes, by Edgar E. Iglesias.
ths
2007-09-30 14:32:45 +00:00
be147d0879* 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)
j_mayer
2007-09-30 13:03:23 +00:00
b0566f4f45Support UltraVNC clients, by Eduardo Felipe.
ths
2007-09-30 13:01:15 +00:00
0db1b20e47Synchronize with latest PowerPC ISA VEA: * fix invalid instructions bits masks * new wait instruction * more comments about effect of cache instructions on the MMU
j_mayer
2007-09-30 03:46:38 +00:00
540635ba65Code provision for n32/n64 mips userland emulation. Not functional yet.
ths
2007-09-30 01:58:33 +00:00
868d585aceAvoid crash on NULL timers. This is a rework of Stefan Weil proposed patch.
j_mayer
2007-09-30 01:29:07 +00:00
c80f84e3c0Implement Process Priority Register as defined in the PowerPC 2.04 spec.
j_mayer
2007-09-30 01:18:26 +00:00
d7e4b87e53Implement new floating-point instructions (fre, frin, friz, frip, frim) as defined in the PowerPC 2.04 specification.
j_mayer
2007-09-30 01:11:48 +00:00
477023a603Improve 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.
j_mayer
2007-09-30 01:01:08 +00:00
bfa1e5cf0aXER is to be treated as a 64 bits register on 64 bits implementations, according to the PowerPC 2.04 specification.
j_mayer
2007-09-30 00:50:23 +00:00
a062e36c58Implement 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.
j_mayer
2007-09-30 00:38:38 +00:00
4887d78b01Don't hardcode the host architecture name.
ths
2007-09-29 21:22:33 +00:00
dee96f6ca3PowerPC emulation optimization: avoid stopping translation after most SPR updates when a context-synchronization instruction is also needed.
j_mayer
2007-09-29 15:02:38 +00:00
58a7d32872Code provision for hypervisor timers resources, as described in PowerPC 2.04 specification.
j_mayer
2007-09-29 13:21:37 +00:00
8bb1f9c51cProvision for x86_64-linux-user target: needs get_sp_from_cpustate
j_mayer
2007-09-29 13:12:58 +00:00
e1833e1f96Rework 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.
j_mayer
2007-09-29 13:06:16 +00:00
f93732914emake cpu_abort dump cpu state in logfile, which is useful for debugging.
j_mayer
2007-09-29 12:18:20 +00:00
29f640e2cfalways_inline gcc directive can be useful.
j_mayer
2007-09-29 12:17:25 +00:00
f1548daae3host_utils.o may also be useful for user-mode emulation.
j_mayer
2007-09-29 12:15:39 +00:00
237c0af017Define the proper bfd_mach to be used by the disassembler for each PowerPC emulated CPU.
j_mayer
2007-09-29 12:01:46 +00:00
d12f4c3822Change POWERPC_PPC_GENERIC to POWERPC_DEFAULT. Use it as default for workstation targets. Fix PowerPC 750fl and 750gl definitions.
j_mayer
2007-09-29 11:51:08 +00:00
418d7c7169Fix MIPS FP underflow handling, spotted by Daniel Jacobowitz.
ths
2007-09-28 19:30:36 +00:00
df0d373665Build fix, ppc64 needs also a get_sp_from_cpustate function now.
ths
2007-09-28 18:45:59 +00:00
198a74de4cMove get_sp_from_cpustate from cpu.h to target_signal.h. Enable sigaltstack processing for more architectures.
ths
2007-09-27 16:44:32 +00:00
a04e134ad1linux-user sigaltstack() syscall, by Thayne Harbaugh.
ths
2007-09-27 13:57:58 +00:00
e3b9808535Build fix for PowerPC hosts, where "PPC" is a predefined macro name.
ths
2007-09-27 12:48:11 +00:00
e3878283deImplement size bit in PowerPC 64 comparisons. Allow 'weight' field in sync instruction.
j_mayer
2007-09-27 04:47:25 +00:00
4118a97030memset string pages to zero to avoid putting random data on the stack that may make some program crash at startup. Fix unsigned long / target_ulong confusion (more to do). Fix missing g2h macros.
j_mayer
2007-09-27 04:10:43 +00:00
526216880dSVM VINTR fix, by Alexander Graf.
ths
2007-09-27 01:52:00 +00:00
40d0591e2cFixes for PowerPC 64 rotate and mask instructions.
j_mayer
2007-09-27 01:32:19 +00:00
92a343da3fNew ppc64-linux-user target. Allow use of PowerPC 970 for debugging (softmmu would not run, for now).
j_mayer
2007-09-27 01:14:15 +00:00
b8d3f5d126Add flags to support PowerPC 405 bootinfos variations.
j_mayer
2007-09-26 23:55:31 +00:00
a750fc0b91Great rework and cleanups to ease PowerPC implementations definitions. * cleanup cpu.h, removing definitions used only in translate.c/translate_init.c * add new flags to define instructions sets more precisely * various changes in MMU models definitions * add definitions for PowerPC 440/460 support (insns and SPRs). * add definitions for PowerPC 401/403 and 620 input pins model * Fix definitions for most PowerPC 401, 403, 405, 440, 601, 602, 603 and 7x0 * Preliminary support for PowerPC 74xx (aka G4) without altivec. * Code provision for other PowerPC support (7x5, 970, ...). * New SPR and PVR defined, from PowerPC 2.04 specification and other sources * Misc code bugs, error messages and styles fixes. * Update status files for PowerPC cores support.
j_mayer
2007-09-26 23:54:22 +00:00
08fa4bab83hflags computation cleanup, by Aurelien Jarno.
ths
2007-09-26 23:52:06 +00:00
fe253235b2Wrap a few often used tests with unlikely(), by Aurelien Jarno.
ths
2007-09-26 23:50:39 +00:00
324071035fConvert syscall arguments and return value from long to int or target_long.
j_mayer
2007-09-26 23:01:49 +00:00
9007f0ef73linux-user utimensat() syscall, by Thayne Harbaugh.
ths
2007-09-25 17:50:37 +00:00
eb296a0a03Remove the target dependency introduced by previous patch
blueswir1
2007-09-25 17:30:09 +00:00
2662a059aaMore PowerPC definitions, from POWER 2.04 specifications and misc sources. Check that at least instructions set and SPRs are correct for PowerPC 401, 403, 405 and 440 cores. Implement PowerPC 401 MMU model (real-mode only). Improve INSNs and SPRs dump to ease parse with standard shell tools. Add more precise status for most PowerPC cores families.
j_mayer
2007-09-21 05:50:37 +00:00
4296f45902Make CPU hflags be a masked version of the PowerPC MSR. As a side effect, avoid potential bits shadowing in TB flags on 64 bits BookE.
j_mayer
2007-09-21 05:23:26 +00:00