ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/Unix/sigsegv.cpp
Revision 1.91 - (view) (annotate) - [select for diffs]
2010-04-08T03:53:27Z (14 years, 7 months ago) by asvitkine
Branch: MAIN
CVS Tags: HEAD
Changes since 1.90: +32 -0 lines
Diff to previous 1.90 , to selected 1.65
[Joel Mauras]
GCC has become too smart - we need to slice the binary created to be sure the
address of the trap is within the test addresses. This is why each trap occurs
between two case labels and a new section of assembly code is set in between.

Revision 1.90 - (view) (annotate) - [select for diffs]
2010-03-10T01:05:49Z (14 years, 8 months ago) by asvitkine
Branch: MAIN
Changes since 1.89: +3 -3 lines
Diff to previous 1.89 , to selected 1.65
[Amadeusz Sławiński]
fix check on gcc 4.4.3

Revision 1.89 - (view) (annotate) - [select for diffs]
2009-04-13T23:13:20Z (15 years, 7 months ago) by asvitkine
Branch: MAIN
Changes since 1.88: +2 -1 lines
Diff to previous 1.88 , to selected 1.65
windows fix try#2

Revision 1.88 - (view) (annotate) - [select for diffs]
2009-04-13T19:57:08Z (15 years, 7 months ago) by asvitkine
Branch: MAIN
Changes since 1.87: +1 -1 lines
Diff to previous 1.87 , to selected 1.65
make sigsegv work better with cygwin

Revision 1.87 - (view) (annotate) - [select for diffs]
2009-02-11T20:44:10Z (15 years, 9 months ago) by asvitkine
Branch: MAIN
Changes since 1.86: +0 -79 lines
Diff to previous 1.86 , to selected 1.65
move sigsegv_info_t declaration to header

Revision 1.86 - (view) (annotate) - [select for diffs]
2009-02-11T19:23:53Z (15 years, 9 months ago) by asvitkine
Branch: MAIN
Changes since 1.85: +14 -5 lines
Diff to previous 1.85 , to selected 1.65
[Patch from Mike Sliczniak]

This first patch gets B2 and SS to build under Leopard and Tiger.

I tested this on a 32-bit intel 10.5.6 mac like so:

B2
./autogen.sh --disable-standalone-gui --enable-vosf --enable-sdl-video --enable-sdl-audio --enable-addressing=real --without-esd --without-gtk --without-mon --without-x

SS
./autogen.sh --disable-standalone-gui --enable-vosf -enable-sdl-video --disable-sdl-audio --enable-addressing=real --without-esd --without-gtk --without-mon --without-x --enable-jit

There is also a little tweak so that you can use sdl audio in SheepShaver when building for Mac OS X.

Revision 1.85 - (view) (annotate) - [select for diffs]
2008-01-20T22:24:53Z (16 years, 9 months ago) by gbeauche
Branch: MAIN
Changes since 1.84: +99 -33 lines
Diff to previous 1.84 , to selected 1.65
64-bit Mach exceptions support. Note that mach_exc_server() et al. must be
explicitly generated from mig. The advantage of that is to provide a "fast"
path for x86_64 on Leopard too (fault address in code[1]).

By "fast", this means +33% faster wrt. explicitly thread_get_state() but
still pretty slow (40 usec/fault). This is on par with the i386 code path though.

Revision 1.84 - (view) (annotate) - [select for diffs]
2008-01-20T17:09:34Z (16 years, 9 months ago) by gbeauche
Branch: MAIN
Changes since 1.83: +5 -6 lines
Diff to previous 1.83 , to selected 1.65
Add support for Windows/ia64.

Revision 1.83 - (view) (annotate) - [select for diffs]
2008-01-20T00:39:51Z (16 years, 9 months ago) by gbeauche
Branch: MAIN
Changes since 1.82: +15 -1 lines
Diff to previous 1.82 , to selected 1.65
HPPA support.

Revision 1.82 - (view) (annotate) - [select for diffs]
2008-01-19T22:27:29Z (16 years, 9 months ago) by gbeauche
Branch: MAIN
Changes since 1.81: +75 -1 lines
Diff to previous 1.81 , to selected 1.65
Add support for HP-UX/ia64. It would be best to use libunwind so that to
handle stacked registers access with ease...

Revision 1.81 - (view) (annotate) - [select for diffs]
2008-01-19T22:25:27Z (16 years, 9 months ago) by gbeauche
Branch: MAIN
Changes since 1.80: +78 -67 lines
Diff to previous 1.80 , to selected 1.65
Use fixed-size integer types, especially for 64-bit quantities. HP-UX for IPF
is essentially an ILP32 platform but machine registers are 64-bit wide. Make
IA64_SET_GR() set the NaT bit at the same time as the register value.

Revision 1.80 - (view) (annotate) - [select for diffs]
2008-01-14T19:29:29Z (16 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.79: +32 -16 lines
Diff to previous 1.79 , to selected 1.65
Fix build on MacOS X Leopard.

Leopard kernel faster? This is pure marketing hype. For 32-bit applications,
Mach exception recovery is 60% slower. For 64-bit applications, this is up
to 40% faster though. In any case, MacOS X remains pretty slow wrt. Linux...

Revision 1.79 - (view) (annotate) - [select for diffs]
2008-01-12T23:01:40Z (16 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.78: +69 -24 lines
Diff to previous 1.78 , to selected 1.65
64-bit Windows support

Revision 1.78 - (view) (annotate) - [select for diffs]
2008-01-07T22:44:39Z (16 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.77: +11 -2 lines
Diff to previous 1.77 , to selected 1.65
Make it possible to override the Mach fault recovery scheme through an
environment variable: SIGSEGV_MACH_FAULT. It can be set to "direct" to
assume the fault address comes from code[1] argument, or "slow" to use
the slow path through thread_get_status(EXCEPTION_STATE)->faultvaddr.

Revision 1.77 - (view) (annotate) - [select for diffs]
2008-01-06T17:22:19Z (16 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.76: +39 -41 lines
Diff to previous 1.76 , to selected 1.65
The Linux kernel actually allows to restart execution from the specified slot
in the bundle. This is faster and more accurate as this avoids emulation.

Also clean-up code so that to prepare the use of lib uaccess on hpux/ia64.
XXX: this will need explicit use of uint64_t to define registers because
HP/UX is ILP32 capable and all registers are 64-bit capable so "unsigned long"
won't fit.

Revision 1.76 - (view) (annotate) - [select for diffs]
2008-01-06T16:36:00Z (16 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.75: +14 -9 lines
Diff to previous 1.75 , to selected 1.65
Further comment the ia64 decoder and (minimal) emulator.

Revision 1.75 - (view) (annotate) - [select for diffs]
2008-01-06T16:25:03Z (16 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.74: +717 -1 lines
Diff to previous 1.74 , to selected 1.65
Add initial support for instruction skipping on Linux/ia64. It was more
complex than expected but it was fun to play with. Who designed this ISA?
I'd love to see how the decoder is implemented in HW, by all means it is
not "simplified" unless I missed some pattern...

Revision 1.74 - (view) (annotate) - [select for diffs]
2008-01-06T16:19:27Z (16 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.73: +38 -20 lines
Diff to previous 1.73 , to selected 1.65
Hack around over-optimized labels-as-values extension from GCC.

Revision 1.73 - (view) (annotate) - [select for diffs]
2008-01-06T16:10:30Z (16 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.72: +2 -2 lines
Diff to previous 1.72 , to selected 1.65
ISO C++ conformance fixes: remove superfluous coma at the end of enum definitions.

Revision 1.72 - (view) (annotate) - [select for diffs]
2008-01-05T08:35:08Z (16 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.71: +51 -51 lines
Diff to previous 1.71 , to selected 1.65
Don't clobber "sip" arg from our sigsegv_info wrapper (renamed to SIP).

Revision 1.71 - (view) (annotate) - [select for diffs]
2008-01-01T09:40:33Z (16 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.70: +1 -1 lines
Diff to previous 1.70 , to selected 1.65
Happy New Year!

Revision 1.70 - (view) (annotate) - [select for diffs]
2007-12-31T18:07:01Z (16 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.69: +40 -19 lines
Diff to previous 1.69 , to selected 1.65
Fix instruction skipping on MacOS X in the fast path case.

Revision 1.69 - (view) (annotate) - [select for diffs]
2007-12-31T06:59:39Z (16 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.68: +14 -2 lines
Diff to previous 1.68 , to selected 1.65
Add support for 64-bit MacOS X for PowerPC (untested beyond "it compiles").

Revision 1.68 - (view) (annotate) - [select for diffs]
2007-12-30T12:11:17Z (16 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.67: +70 -50 lines
Diff to previous 1.67 , to selected 1.65
According to kernel sources, that is XNU 344.49 (10.2.8), XNU 517.12.7 (10.3.9),
XNU 792.21.3 (10.4.10) and XNU 1228 (10.5.0), exception handler code[1] always
contains the fault address nowadays. So make it the default fast path but keep
provisions to check that at run-time first.

This yields a nearly 4x improvement in SIGSEGV recovery but MacOS X is still
suboptimal wrt. Linux, so VOSF is still not possible with frameskip == 0.

XXX: the ppc kernel had bugs that caused DAR (put into code[1]) to be incorrectly
decoded. This would need a broader test audience or more careful audit of the
sources changes.

Revision 1.67 - (view) (annotate) - [select for diffs]
2007-12-30T08:45:18Z (16 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.66: +33 -10 lines
Diff to previous 1.66 , to selected 1.65
Improve API for systems that require explicit calls to functions to retrieve
the memory addresses that triggered a SIGSEGV (e.g. MacOS X).

Revision 1.66 - (view) (annotate) - [select for diffs]
2007-06-16T06:21:57Z (17 years, 5 months ago) by gbeauche
Branch: MAIN
Changes since 1.65: +77 -17 lines
Diff to previous 1.65
Add Darwin/x86_64 support. Fix EDX register index for i386 insn decoder.

Revision 1.65 - (view) (annotate) - [selected]
2007-06-05T13:15:57Z (17 years, 5 months ago) by gbeauche
Branch: MAIN
Changes since 1.64: +11 -9 lines
Diff to previous 1.64
Arrangements for Linux/mips.

Revision 1.64 - (view) (annotate) - [select for diffs]
2006-07-19T21:31:10Z (18 years, 4 months ago) by gbeauche
Branch: MAIN
CVS Tags: nigel-build-19
Changes since 1.63: +43 -49 lines
Diff to previous 1.63 , to selected 1.65
A few fixlets to the SIGSEGV library:
- Don't export transfer types definitions (formerly used by older API)
- Handle ADD instructions in ix86_skip_instruction() (generated by icc 9.1)
- Use "%p" format for EIP/RIP addresses

Revision 1.63 - (view) (annotate) - [select for diffs]
2006-05-09T06:24:05Z (18 years, 6 months ago) by gbeauche
Branch: MAIN
Changes since 1.62: +8 -2 lines
Diff to previous 1.62 , to selected 1.65
MacOS X exception handling updates:
- Call user handler for KERN_INVALID_ADDRESS too (SIGBUS)
- Check for VALID_THREAD_STATE_FLAVOR in forward_exception()
- Return KERN_FAILURE if forward_exception() got an unknown behavior code

Revision 1.62 - (view) (annotate) - [select for diffs]
2006-03-30T22:45:49Z (18 years, 7 months ago) by gbeauche
Branch: MAIN
Changes since 1.61: +29 -0 lines
Diff to previous 1.61 , to selected 1.65
decode movslq (generated by gcc4.1)

Revision 1.61 - (view) (annotate) - [select for diffs]
2006-02-27T13:38:52Z (18 years, 8 months ago) by gbeauche
Branch: MAIN
Changes since 1.60: +9 -0 lines
Diff to previous 1.60 , to selected 1.65
add some barriers to make sure L_e_region* really come after the test insns

Revision 1.60 - (view) (annotate) - [select for diffs]
2006-01-24T21:33:26Z (18 years, 9 months ago) by gbeauche
Branch: MAIN
Changes since 1.59: +6 -6 lines
Diff to previous 1.59 , to selected 1.65
ugly cast games

Revision 1.59 - (view) (annotate) - [select for diffs]
2006-01-23T23:57:41Z (18 years, 9 months ago) by gbeauche
Branch: MAIN
Changes since 1.58: +2 -19 lines
Diff to previous 1.58 , to selected 1.65
Code I wrote yesterday was totally broken. It's enough to make sure nPC is
correctly updated too... Instruction skipper now works on Solaris/SPARC.

Revision 1.58 - (view) (annotate) - [select for diffs]
2006-01-22T23:14:48Z (18 years, 9 months ago) by gbeauche
Branch: MAIN
Changes since 1.57: +41 -21 lines
Diff to previous 1.57 , to selected 1.65
- Fix SPARC Store Doubleword transfer_size in decoder.
- In the instruction skipper code, add a huge kludge (trampoline) to forcibly
  zero out %global registers when requested. Otherwise, Solaris/SPARC turned
  out to use %g1 during signal handling, and the zero we could have written
  to there vanished. This assumes [%sp-8] is valid to use (ABI states data
  below %sp is undefined though)

Revision 1.57 - (view) (annotate) - [select for diffs]
2006-01-22T00:05:05Z (18 years, 9 months ago) by gbeauche
Branch: MAIN
Changes since 1.56: +23 -3 lines
Diff to previous 1.56 , to selected 1.65
Adapt for MacOS X for Intel, also fix thread_state type in forward_exception()

Revision 1.56 - (view) (annotate) - [select for diffs]
2005-06-12T21:47:46Z (19 years, 5 months ago) by gbeauche
Branch: MAIN
CVS Tags: nigel-build-17
Changes since 1.55: +46 -32 lines
Diff to previous 1.55 , to selected 1.65
Mach exception recovery and instruction skipping for Darwin/x86.

Revision 1.55 - (view) (annotate) - [select for diffs]
2005-03-23T22:00:06Z (19 years, 7 months ago) by gbeauche
Branch: MAIN
Changes since 1.54: +21 -1 lines
Diff to previous 1.54 , to selected 1.65
Enable instruction skipping for OpenBSD 3.4 on i386

Revision 1.54 - (view) (annotate) - [select for diffs]
2005-03-23T21:37:24Z (19 years, 7 months ago) by gbeauche
Branch: MAIN
Changes since 1.53: +24 -5 lines
Diff to previous 1.53 , to selected 1.65
instruction skipper for Solaris/i386 (Solaris 9)

Revision 1.53 - (view) (annotate) - [select for diffs]
2005-02-20T11:39:12Z (19 years, 8 months ago) by gbeauche
Branch: MAIN
Changes since 1.52: +7 -0 lines
Diff to previous 1.52 , to selected 1.65
NetBSD/ppc support

Revision 1.52 - (view) (annotate) - [select for diffs]
2005-01-30T21:42:14Z (19 years, 9 months ago) by gbeauche
Branch: MAIN
Changes since 1.51: +1 -1 lines
Diff to previous 1.51 , to selected 1.65
Happy New Year!

Revision 1.51 - (view) (annotate) - [select for diffs]
2005-01-04T23:38:01Z (19 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.50: +26 -2 lines
Diff to previous 1.50 , to selected 1.65
Fixes for NetBSD 2.0

Revision 1.50 - (view) (annotate) - [select for diffs]
2004-12-11T13:07:38Z (19 years, 11 months ago) by gbeauche
Branch: MAIN
Changes since 1.49: +8 -5 lines
Diff to previous 1.49 , to selected 1.65
Check that we can really read at the faulty eip in Windows prior to decoding
the instruction. Also fix the unrecoverable fault dump to really be useful.

Revision 1.49 - (view) (annotate) - [select for diffs]
2004-12-02T23:29:52Z (19 years, 11 months ago) by gbeauche
Branch: MAIN
Changes since 1.48: +20 -6 lines
Diff to previous 1.48 , to selected 1.65
ppc64 fixes

Revision 1.48 - (view) (annotate) - [select for diffs]
2004-11-13T23:44:11Z (20 years ago) by gbeauche
Branch: MAIN
Changes since 1.47: +128 -3 lines
Diff to previous 1.47 , to selected 1.65
Integrate SIGSEGV recovery from libsigsegv for Windows and Cygwin.
Also implement instruction skipper for Windows/x86.

Revision 1.47 - (view) (annotate) - [select for diffs]
2004-02-16T16:02:48Z (20 years, 9 months ago) by gbeauche
Branch: MAIN
Changes since 1.46: +1 -0 lines
Diff to previous 1.46 , to selected 1.65
Decode MOVSX r32, r/m16 (generated by icc v8.0 on x86)

Revision 1.46 - (view) (annotate) - [select for diffs]
2004-01-22T00:00:55Z (20 years, 9 months ago) by gbeauche
Branch: MAIN
CVS Tags: nigel-build-15, nigel-build-16
Changes since 1.45: +1 -1 lines
Diff to previous 1.45 , to selected 1.65
cosmetic fixes when printing movsbq operation summary

Revision 1.45 - (view) (annotate) - [select for diffs]
2004-01-21T23:50:06Z (20 years, 9 months ago) by gbeauche
Branch: MAIN
Changes since 1.44: +27 -17 lines
Diff to previous 1.44 , to selected 1.65
handle (skip) x86 movsbl instructions

Revision 1.44 - (view) (annotate) - [select for diffs]
2004-01-21T23:14:28Z (20 years, 9 months ago) by gbeauche
Branch: MAIN
Changes since 1.43: +160 -0 lines
Diff to previous 1.43 , to selected 1.65
Summary: possible support of SheepShaver on Zaurus PDAs

Add Linux/ARM instruction skipping, includes support for ARMv4+ halfword
and signed data transfer instructions. Note that load/store multiple are
not handled and someone has to make sure post-incr/write-back logic is
correctly implemented.

Revision 1.43 - (view) (annotate) - [select for diffs]
2004-01-20T23:49:32Z (20 years, 9 months ago) by nigel
Branch: MAIN
Changes since 1.42: +2 -0 lines
Diff to previous 1.42 , to selected 1.65
Added missing switch value to eliminate a warning

Revision 1.42 - (view) (annotate) - [select for diffs]
2004-01-19T16:59:13Z (20 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.41: +12 -0 lines
Diff to previous 1.41 , to selected 1.65
ARM/linux sigsegv handler. Instruction skipper yet to be written for
happy Zaurus owners.

Revision 1.41 - (view) (annotate) - [select for diffs]
2004-01-12T15:29:25Z (20 years, 10 months ago) by cebix
Branch: MAIN
Changes since 1.40: +1 -1 lines
Diff to previous 1.40 , to selected 1.65
Happy New Year! :)

Revision 1.40 - (view) (annotate) - [select for diffs]
2003-12-20T23:22:25Z (20 years, 11 months ago) by gbeauche
Branch: MAIN
Changes since 1.39: +135 -0 lines
Diff to previous 1.39 , to selected 1.65
Instruction skipper for Solaris/SPARC.

Revision 1.39 - (view) (annotate) - [select for diffs]
2003-12-20T21:50:08Z (20 years, 11 months ago) by gbeauche
Branch: MAIN
Changes since 1.38: +20 -1 lines
Diff to previous 1.38 , to selected 1.65
Add support for Linux/hppa, FreeBSD/alpha. Misc debugging output.

Revision 1.38 - (view) (annotate) - [select for diffs]
2003-12-20T10:06:18Z (20 years, 11 months ago) by gbeauche
Branch: MAIN
Changes since 1.37: +167 -0 lines
Diff to previous 1.37 , to selected 1.65
MIPS instruction skipper. TODO: check LWL/LWR semantics.

Revision 1.37 - (view) (annotate) - [select for diffs]
2003-12-20T07:43:56Z (20 years, 11 months ago) by gbeauche
Branch: MAIN
Changes since 1.36: +8 -2 lines
Diff to previous 1.36 , to selected 1.65
Fix subterfuge mode on IRIX/mips. Get PC in both modes for Irix too

Revision 1.36 - (view) (annotate) - [select for diffs]
2003-11-11T00:10:39Z (21 years ago) by gbeauche
Branch: MAIN
Changes since 1.35: +6 -4 lines
Diff to previous 1.35 , to selected 1.65
really fix writes to byte registers

Revision 1.35 - (view) (annotate) - [select for diffs]
2003-11-10T23:54:31Z (21 years ago) by gbeauche
Branch: MAIN
Changes since 1.34: +1 -1 lines
Diff to previous 1.34 , to selected 1.65
fix configure tests. i.e. move up arch_insn_skipper_tests()

Revision 1.34 - (view) (annotate) - [select for diffs]
2003-11-10T23:47:39Z (21 years ago) by gbeauche
Branch: MAIN
Changes since 1.33: +197 -36 lines
Diff to previous 1.33 , to selected 1.65
Extend x86 instruction skipper to AMD64. Add plenty of arch dependent
opcodes to test it. Also fix DEBUG output & writes (zero'ing) to %xH regs

Revision 1.33 - (view) (annotate) - [select for diffs]
2003-10-21T23:10:19Z (21 years ago) by gbeauche
Branch: MAIN
Changes since 1.32: +37 -15 lines
Diff to previous 1.32 , to selected 1.65
- FreeBSD/i386 sigcontext subterfuge support for instruction skipper
- NetBSD/alpha support from Boehm GC
- NetBSD/i386 won't work in sigcontext subterfuge mode unless instruction
  is decoded more accurately to compute the effective address. Also note
  that NetBSD 1.6 does not support siginfo_t yet.

Revision 1.32 - (view) (annotate) - [select for diffs]
2003-10-21T21:59:41Z (21 years ago) by gbeauche
Branch: MAIN
Changes since 1.31: +56 -14 lines
Diff to previous 1.31 , to selected 1.65
Solaris/SPARC support for SIGSEGV_FAULT_INSTRUCTION

Revision 1.31 - (view) (annotate) - [select for diffs]
2003-10-13T20:15:41Z (21 years, 1 month ago) by gbeauche
Branch: MAIN
Changes since 1.30: +5 -4 lines
Diff to previous 1.30 , to selected 1.65
fix merge with Mach exception filters, we have preconditions to check

Revision 1.30 - (view) (annotate) - [select for diffs]
2003-10-13T19:56:17Z (21 years, 1 month ago) by gbeauche
Branch: MAIN
Changes since 1.29: +20 -15 lines
Diff to previous 1.29 , to selected 1.65
indentation fixes, optimize handle_badaccess() to receive only necessary
data and don't copy a struct sigcontext again on x86.

Revision 1.29 - (view) (annotate) - [select for diffs]
2003-10-13T19:43:09Z (21 years, 1 month ago) by gbeauche
Branch: MAIN
Changes since 1.28: +10 -10 lines
Diff to previous 1.28 , to selected 1.65
return something more convenient to debug on errors

Revision 1.28 - (view) (annotate) - [select for diffs]
2003-10-12T21:41:19Z (21 years, 1 month ago) by gbeauche
Branch: MAIN
Changes since 1.27: +22 -1 lines
Diff to previous 1.27 , to selected 1.65
Make sure reported fault instruction address falls into the expected code
range. This is a configure-time safety net that depends on the GCC "Labels
as Values" extension.

Revision 1.27 - (view) (annotate) - [select for diffs]
2003-10-12T21:15:52Z (21 years, 1 month ago) by gbeauche
Branch: MAIN
Changes since 1.26: +451 -22 lines
Diff to previous 1.26 , to selected 1.65
Mach memory fault recovery from Michael Z. Sliczniak

Revision 1.26 - (view) (annotate) - [select for diffs]
2003-09-29T08:04:22Z (21 years, 1 month ago) by gbeauche
Branch: MAIN
Changes since 1.25: +1 -1 lines
Diff to previous 1.25 , to selected 1.65
really fix typo!

Revision 1.25 - (view) (annotate) - [select for diffs]
2003-09-29T08:02:04Z (21 years, 1 month ago) by gbeauche
Branch: MAIN
Changes since 1.24: +1 -1 lines
Diff to previous 1.24 , to selected 1.65
fix typo

Revision 1.24 - (view) (annotate) - [select for diffs]
2003-09-29T07:02:58Z (21 years, 1 month ago) by gbeauche
Branch: MAIN
Changes since 1.23: +13 -74 lines
Diff to previous 1.23 , to selected 1.65
New SIGSEGV API so that skip-instruction requests are more explicit. Yes,
that's api change, but that's cooler now for SheepShaver. ;-)

Revision 1.23 - (view) (annotate) - [select for diffs]
2003-08-17T10:52:52Z (21 years, 3 months ago) by gbeauche
Branch: MAIN
Changes since 1.22: +3 -1 lines
Diff to previous 1.22 , to selected 1.65
Bring x86 instruction skipper back to life

Revision 1.22 - (view) (annotate) - [select for diffs]
2003-05-14T06:50:05Z (21 years, 6 months ago) by gbeauche
Branch: MAIN
Changes since 1.21: +122 -74 lines
Diff to previous 1.21 , to selected 1.65
New API to ignore a SIGSEGV fault. This should help on SheepShaver/x86 for now
since I still don't know why MacOS would like to write to ROM on a particular
test.

Revision 1.21 - (view) (annotate) - [select for diffs]
2002-10-03T15:49:14Z (22 years, 1 month ago) by gbeauche
Branch: MAIN
CVS Tags: nigel-build-12, nigel-build-13
Changes since 1.20: +0 -3 lines
Diff to previous 1.20 , to selected 1.65
configure script is reportedly no longer crashing on FreeBSD when
SIGSEGV_SKIP_INSTRUCTION is set.

Revision 1.20 - (view) (annotate) - [select for diffs]
2002-07-17T06:51:05Z (22 years, 4 months ago) by gbeauche
Branch: MAIN
Changes since 1.19: +6 -0 lines
Diff to previous 1.19 , to selected 1.65
- New arch support for IP retrieval on SIGSEGV.

Revision 1.19 - (view) (annotate) - [select for diffs]
2002-06-27T14:28:59Z (22 years, 4 months ago) by gbeauche
Branch: MAIN
Changes since 1.18: +2 -0 lines
Diff to previous 1.18 , to selected 1.65
Correctly guard FreeBSD bits

Revision 1.18 - (view) (annotate) - [select for diffs]
2002-05-20T18:12:01Z (22 years, 6 months ago) by gbeauche
Branch: MAIN
Changes since 1.17: +8 -2 lines
Diff to previous 1.17 , to selected 1.65
Backout "ignoresegv" support on FreeBSD/x86 for now. Unfortunately, the
configure script would hang whereas standalone testing will pass all tests.
Any idea why??
- Unix/sigsegv.cpp (ix86_skip_instruction): Add decoder for mozbl instruction.
  (SIGSEGV_REGISTER_FILE [FreeBSD/x86]): Note why we start at EDI offset
  rather than plain sigcontext pointer. i.e. I don't know sigset_t size
  beforehand and don't intend to.

Revision 1.17 - (view) (annotate) - [select for diffs]
2002-05-20T17:49:04Z (22 years, 6 months ago) by gbeauche
Branch: MAIN
Changes since 1.16: +38 -1 lines
Diff to previous 1.16 , to selected 1.65
Implement "ignoresegv" feature on FreeBSD/x86 (tested on FreeBSD 4.5)
- sigsegv.cpp (ix86_skip_instruction): Add decoder for movzwl instructions.
  (main): oddly, FreeBSD doesn't seem to let a write to a page if it is
  write-only. Aka. make the page readable too.

Revision 1.16 - (view) (annotate) - [select for diffs]
2002-05-20T16:03:37Z (22 years, 6 months ago) by gbeauche
Branch: MAIN
Changes since 1.15: +1 -1 lines
Diff to previous 1.15 , to selected 1.65
- Fix compilation on Linux/x86 with SIGCONTEXT_SUBTERFUGE

Revision 1.15 - (view) (annotate) - [select for diffs]
2002-05-20T16:00:07Z (22 years, 6 months ago) by gbeauche
Branch: MAIN
Changes since 1.14: +1 -1 lines
Diff to previous 1.14 , to selected 1.65
- sigsegv.cpp (ix86_skip_instruction): Fix DEBUG compilation.

Revision 1.14 - (view) (annotate) - [select for diffs]
2002-05-20T15:56:13Z (22 years, 6 months ago) by gbeauche
Branch: MAIN
Changes since 1.13: +218 -269 lines
Diff to previous 1.13 , to selected 1.65
Implement "ignoresegv" feature on Darwin/ppc (tested on MacOS X)
- Unix/sigsegv.cpp (powerpc_decode_instruction): New.
  (get_fault_instruction [MacOS X]): Factorize code.
  (get_fault_instruction [Linux/m68k]): Don't use expression statement.
- README (ignoresegv): Add Darwin/ppc to list of supported platforms.

Revision 1.13 - (view) (annotate) - [select for diffs]
2002-05-19T21:58:42Z (22 years, 6 months ago) by gbeauche
Branch: MAIN
Changes since 1.12: +153 -1 lines
Diff to previous 1.12 , to selected 1.65
Implement "ignoresegv" feature on Linux/ppc:
- Unix/sigsegv.cpp (powerpc_skip_instruction): New from SheepShaver code.
- README (ignoresegv): Add Linux/ppc to list of supported platforms.

Revision 1.12 - (view) (annotate) - [select for diffs]
2002-05-16T15:48:06Z (22 years, 6 months ago) by gbeauche
Branch: MAIN
Changes since 1.11: +10 -10 lines
Diff to previous 1.11 , to selected 1.65
- video_vosh.h (Screen_fault_handler): Move unrecoverable fault case to...
- main_unix.cpp (sigsegv_dump_state): ... Here.
- sigsegv.h (sigsegv_fault_handler_t): Rename from sigsegv_handler_t.
- sigsegv.h (sigsegv_state_dumper_t): New.

Revision 1.11 - (view) (annotate) - [select for diffs]
2002-05-12T13:51:22Z (22 years, 6 months ago) by gbeauche
Branch: MAIN
Changes since 1.10: +9 -0 lines
Diff to previous 1.10 , to selected 1.65
- Merge with clisp SIGSEGV library version 1.2 with support added for
  HP-UX (contributed by Paolo Bonzini)
- Add missing? include <ucontext.h> for Irix and OSF/1 support

Revision 1.10 - (view) (annotate) - [select for diffs]
2002-05-12T11:10:50Z (22 years, 6 months ago) by gbeauche
Branch: MAIN
Changes since 1.9: +257 -2 lines
Diff to previous 1.9 , to selected 1.65
Implement the "ignoresegv" feature from SheepShaver. This is Unix-specific
so far. Target platform is currently Linux/x86.

Revision 1.9 - (view) (annotate) - [select for diffs]
2002-03-16T21:36:12Z (22 years, 8 months ago) by gbeauche
Branch: MAIN
Changes since 1.8: +4 -0 lines
Diff to previous 1.8 , to selected 1.65
- Add fault instruction recovery for Linux/ppc and siginfo_t handlers

Revision 1.8 - (view) (annotate) - [select for diffs]
2002-02-01T19:25:49Z (22 years, 9 months ago) by cebix
Branch: MAIN
Changes since 1.7: +4 -0 lines
Diff to previous 1.7 , to selected 1.65
direct addressing works under FreeBSD (says Michael Alyn Miller :-)

Revision 1.7 - (view) (annotate) - [select for diffs]
2002-01-15T14:58:37Z (22 years, 10 months ago) by cebix
Branch: MAIN
CVS Tags: snapshot-15012002
Changes since 1.6: +1 -1 lines
Diff to previous 1.6 , to selected 1.65
- documentation updates
- 2001 -> 2002
- version 0.9 -> 1.0

Revision 1.6 - (view) (annotate) - [select for diffs]
2002-01-07T16:30:39Z (22 years, 10 months ago) by gbeauche
Branch: MAIN
Changes since 1.5: +4 -0 lines
Diff to previous 1.5 , to selected 1.65
- Add EIP recovery on Linux/x86 when using siginfo_t based signal handlers

Revision 1.5 - (view) (annotate) - [select for diffs]
2001-07-07T09:12:15Z (23 years, 4 months ago) by gbeauche
Branch: MAIN
Changes since 1.4: +7 -2 lines
Diff to previous 1.4 , to selected 1.65
- small fixes for Linux/ia64

Revision 1.4 - (view) (annotate) - [select for diffs]
2001-06-26T22:35:41Z (23 years, 4 months ago) by gbeauche
Branch: MAIN
Changes since 1.3: +134 -9 lines
Diff to previous 1.3 , to selected 1.65
- added SIGSEGV support for Linux/Alpha (to be checked), Darwin/PPC
- added uniform virtual memory allocation
  (supports mmap(), vm_allocate(), or fallbacks to malloc()/free())
- cleaned up memory allocation in main_unix.cpp

Revision 1.3 - (view) (annotate) - [select for diffs]
2001-06-05T12:16:34Z (23 years, 5 months ago) by gbeauche
Branch: MAIN
Changes since 1.2: +4 -4 lines
Diff to previous 1.2 , to selected 1.65
- use "volatile" to prevent from optimization for writes to page

Revision 1.2 - (view) (annotate) - [select for diffs]
2001-05-21T03:21:54Z (23 years, 6 months ago) by gbeauche
Branch: MAIN
CVS Tags: release-0_9-1, snapshot-29052001
Changes since 1.1: +13 -2 lines
Diff to previous 1.1 , to selected 1.65
- fixed "SIGSEGV recovery" not supported case

Revision 1.1 - (view) (annotate) - [select for diffs]
2001-05-20T20:31:50Z (23 years, 6 months ago) by gbeauche
Branch: MAIN
Diff to selected 1.65
- new and updated SIGSEGV support functions:
  + configure script cleanups
  + possible support for Direct Addressing / VOSF on other platforms

Convenience Links

Links to HEAD: (view) (annotate)

Compare Revisions

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.

  Diffs between and
  Type of Diff should be a