Glenn Maynard
87cc6c593f
real fix for VC6
2006-06-24 05:40:12 +00:00
Steve Checkoway
7c8b1903e4
The sse version works correctly and is implemented portable. The only problem is that at least for linux, memory allocated on the heap isn't guaranteed to be 16 byte aligned and FastSoundRead() depends on both dest and src being 16 byte aligned. This could easily be overcome in the same way as FastSoundWrite.
2006-06-19 05:24:41 +00:00
Steve Checkoway
7dce2e2825
Fix the (unused) float version for sse.
2006-06-19 05:21:10 +00:00
Steve Checkoway
b8e1db595a
Fix the (unused) float version for altivec.
2006-06-19 04:04:10 +00:00
Steve Checkoway
7ba8eefebf
Apparently we want data1 before data2. (Tested.)
2006-06-19 03:21:25 +00:00
Steve Checkoway
7dbdc89b8c
Fix misaligned load/store. Also, these are little endian so merge the low order bytes first. Since this code _is_ portable, I can test it on x86 linux.
2006-06-19 02:53:14 +00:00
Steve Checkoway
36f6042ef0
Cleanup.
2006-06-18 18:49:23 +00:00
Steve Checkoway
de4a22d9e0
Reuse variables. (I'm hope gcc was smart enough to reuse the registers on its own, but I didn't actually check. This way we should be using fewer than 32.)
2006-06-18 18:41:22 +00:00
Steve Checkoway
66dfad63b0
Be careful not to read past the end of the data. With aligned loads (which are every load in altivec), it is always okay to load a vector if you can access any element of that vector. It is not always okay to load the next vector.
2006-06-18 18:30:28 +00:00
Steve Checkoway
acf04db9f9
Implement with SSE but don't enable since I can't test it. It should be portable since I used Intel's intrinsics.
2006-06-18 18:10:14 +00:00
Steve Checkoway
aef9e00016
Implement IsDebuggerPresent() and DebugBreak() in OS X. This uses an unstable api so it will only be in debug builds.
2006-06-16 07:18:39 +00:00
Glenn Maynard
f0b7631e3a
use standard name "isfinite", not "finite"
2006-06-15 03:15:41 +00:00
Steve Checkoway
af5f6f4edb
Cleanup.
2006-06-13 12:41:40 +00:00
Steve Checkoway
b7c1412a70
Re-enable vector code. FastSoundWrite can now handle a dest that is not 16 byte aligned although it will be fastest if dest is 16 byte aligned and size is a multiple of 8.
2006-06-13 12:30:51 +00:00
Steve Checkoway
f30c1d797e
Disable vector code for now until I fix the case where dest is unaligned.
2006-06-13 07:58:58 +00:00
Steve Checkoway
e0d0cb0c3a
Just copy the rest of the macros.
2006-06-12 06:06:39 +00:00
Chris Danford
e2eb5135e5
add international keyboard support
2006-06-11 07:12:01 +00:00
Steve Checkoway
2754fd0f18
Perform the same loop unrolling for Read. This eliminate all stalls in the loop for all processors with altivec (well, at least both G4s (IBM 7400 and 7450) and the G5 (IBM 970) processors. I didn't bother for the other read function since it isn't actually used and is included more for completeness than anything else (plus, these were a lot of fun to write).
2006-05-17 09:59:34 +00:00
Steve Checkoway
177e65a34c
Do gcc's job for it and do sane loop unrolling. The (now second) while loop was stalling the pipeline almost as often as it was doing useful work. When gcc tried to do loop unrolling (i.e. when I changed the condition to size >= 8), it produced 4 _identical_ copies of the loop, each of which had the same number of stalls (this is all with the G5, the G4 had one stall in the loop). By unrolling and doing the most basic of instruction scheduling, this produces the same amount of code as gcc does but with 1 stall in the big loop (0 for the G4) but the same number in the second loop which is executed at most 3 times.
...
To keep gcc from unrolling the second loop, I'm using the bit masking condition which confuses the optimizer.
Note that this behavior won't change unless we stop targeting any OS below 10.3.9 and move to a more recent version of gcc (whose behavior I haven't bothered to test).
2006-05-17 09:27:54 +00:00
Steve Checkoway
51b2438668
Remove, again.
2006-05-14 09:14:28 +00:00
Steve Checkoway
b912d61546
Following Wolfman's example, some comments so that maybe next time I look at this I won't see vec_ctf and think "capture the flag?"
2006-05-14 08:13:16 +00:00
Steve Checkoway
f39e79efed
The last of the changes, I hope.
2006-05-14 07:04:28 +00:00
Steve Checkoway
60d3b90552
I thought I fixed this already. This section ranges from 42 to 47.
2006-05-07 11:13:21 +00:00
Steve Checkoway
2f95767104
Year.
2006-04-29 11:41:33 +00:00
Steve Checkoway
53f0531bba
Reimplement without using Cocoa. Put crashinfo.txt into ~/Library/Logs/PRODUCT_ID along with log.txt and info.txt.
2006-04-29 11:38:49 +00:00
Steve Checkoway
cb4c2f5c53
Cleanup.
2006-04-29 09:26:45 +00:00
Glenn Maynard
f486609781
if eip is NULL, don't put a NULL into the frame list and terminate it prematurely
2006-04-08 12:44:40 +00:00
Steve Checkoway
e13fc56198
Initial linux ppc backtrace implementation.
2006-04-05 00:49:56 +00:00
Glenn Maynard
76f0346122
checkpoint paranoia
2006-03-30 08:10:11 +00:00
Steve Checkoway
61363eff0b
Use Frame*.
2006-03-29 11:21:44 +00:00
Glenn Maynard
84f87db44d
Do include offset information for internal symbols (not just DLLs). They're helpful
...
for narrowing down exactly where we are in a function.
2006-03-29 04:48:39 +00:00
Glenn Maynard
cec466b584
update
2006-03-29 04:45:58 +00:00
Glenn Maynard
e7d45c189b
Always include the "___ImageBase" symbol, so the first RVA entry
...
is always (hopefully) the base of the EXE. That way, we can display
consistent offsets relative to that.
2006-03-29 04:45:12 +00:00
Glenn Maynard
ea298ce438
cleanup
2006-03-29 01:43:51 +00:00
Glenn Maynard
5d8a93c19a
checkpoints
2006-03-29 01:43:18 +00:00
Steve Checkoway
1a240d3b6c
Cleanup.
2006-03-28 14:37:40 +00:00
Steve Checkoway
81afe152ec
Oops, two changes in that last commit. Don't have the child kill the parent any longer. This doesn't work when gdb is tracing. Why is the parent waiting for the child anyway? It shouldn't really matter that much if the child is signaled.
...
Also, why doesn't RunCrashHandler call _exit()? ForceDeadlock() calls _exit() after RunCrashHandler(), but ForceCrash does not, it has to go back to sm_crash() before _exit() is called. It's all very mysterious at 6:30 am.
2006-03-28 14:26:22 +00:00
Steve Checkoway
746261d8bd
Split out itoa, SignalName, and SignalCodeName. All of these are macros, so testing for them directly is okay (at least on OS X and linux). If some other system doesn't implement them as macros, then checks for them can be added to the configure.ac script.
...
All of these can be called under crash conditions.
2006-03-28 14:20:57 +00:00
Glenn Maynard
b0eb0623de
Log pContext->Eip. That way, even if we can't get anything out of the stack,
...
we always get at least the current address.
2006-03-28 04:58:31 +00:00
Glenn Maynard
a212b8b873
missing exception name
2006-03-27 20:47:09 +00:00
Steve Checkoway
acbfd4224f
Use OS X text converter, not iconv (trying to keep the code base the same no matter for which arch it is compiling).
2006-03-20 07:58:42 +00:00
Steve Checkoway
3a304b1a41
BSD stuff. Some of this seems like it should be in its own file...
2006-03-20 06:46:19 +00:00
Steve Checkoway
988e1729f9
Namespace
2006-03-20 06:45:58 +00:00
Steve Checkoway
0b81507b2e
Use iconv appeared some point after 10.2.8 but with the broken BSD headers.
2006-03-20 06:12:51 +00:00
Steve Checkoway
26741978ad
This is not supposed to be in CVS.
2006-03-20 05:21:59 +00:00
Chris Danford
702e5401d5
save Cache to My Documents. The Application Data dir is a pain to get to.
2006-03-19 20:50:09 +00:00
Chris Danford
4dd5728ee0
style cleanup
2006-03-17 00:15:35 +00:00
Chris Danford
3213b52a68
crash text cleanup
2006-03-13 09:14:07 +00:00
Glenn Maynard
bd896acff2
remove IDC_RESULT_ID
2006-03-13 08:55:26 +00:00
Glenn Maynard
32dfaac9a8
Display PRODUCT_FAMILY. PRODUCT_ID is just for IDs, like registry entries.
2006-03-13 08:52:51 +00:00