Commit Graph

49 Commits

Author SHA1 Message Date
janwas 7eebe05485 fixes+improvements from work:
timer: cleanup, remove duplication
topology: fix incorrect param order
tsc: ensure MSRs are available before accessing
msr: add prefix to make clear that registers are nehalem-specific

This was SVN commit r7892.
2010-08-10 17:03:17 +00:00
janwas b89e86772b belatedly add files missing from 3d45069b3f (my bad)
This was SVN commit r7884.
2010-08-09 07:37:43 +00:00
janwas 3d45069b3f improvements/additions from work
bits: fix bit_mask for signed types, add SetBitsTo, LeastSignificantBit,
ClearLeastSignificantBit.
add MSR support (read/write via mahaf in kernel mode)
x86_x64: expose family/model
topology: add support for determining core/package from APIC ID.
TSC: report actual frequency for nehalem invariant TSC.
improved UNREACHABLE/ASSUME_UNREACHABLE (avoid ICC warning, add GCC4.5
support)

This was SVN commit r7860.
2010-08-06 13:03:44 +00:00
Ykkrosh 1706363bab Fix #423 (Switch from CppDoc to Doxygen), based on patch from anr.
Also delete some unused declarations, and rename is_playing to
snd_is_playing.

This was SVN commit r7813.
2010-07-29 15:55:41 +00:00
janwas f79056efbd fix CPU topology problem under VMs reported by Philip (update workspaces required)
also moved lib.h's code generation macros into a separate file to break
a circular dependency with lib.h's use of debug_assert, and added a stub
implementation of sysdep/numa.h

This was SVN commit r7808.
2010-07-25 17:10:57 +00:00
Ykkrosh 4cd88d8aa9 Remove an assertion which I hope wasn't important
This was SVN commit r7801.
2010-07-24 21:54:54 +00:00
janwas fea6745ec9 fix incorrect screening of APIC IDs (now handle OS X's lack of thread affinity and/or running under a VM without complaint)
This was SVN commit r7797.
2010-07-24 18:48:25 +00:00
Ykkrosh a3f37209a5 Warning fix
This was SVN commit r7787.
2010-07-22 19:01:25 +00:00
janwas 8ab70776a5 fix: cpu_CAS64 should use i64 for compatibility with 64-bit CAS
This was SVN commit r7786.
2010-07-22 18:57:36 +00:00
janwas aa44bac652 from work: add thread-safe timer; add CAS64 (required for thread-safe timer); remove topology init requirements, no longer cache results (simplifies GroupPolicy_PerCache); add scoped affinitizer; whrt: fix race condition reported by parallel inspector. also refactor cache and TLB detection.
This was SVN commit r7785.
2010-07-22 16:17:33 +00:00
janwas 12568b0229 further fixes from work (where i've finally managed to (temporarily) sign the Aken driver)
in particular, remove two hindrances to displaying the error dialog
during early init.

This was SVN commit r7754.
2010-07-14 12:23:53 +00:00
janwas c634a62f4c from work: cpu_AtomicAdd - return previous value (required for atomic test&set)
numa: move allocator into higher-level VirtualMemory module, since
VirtualAllocExNuma requires Server 2008 and the workaround doesn't
require numa support

This was SVN commit r7753.
2010-07-14 08:52:20 +00:00
janwas 98770fa4cc # fix race conditions in ModuleInit and related cleanup.
CAS: uintptr_t->intptr_t to allow use of both cpu_CAS and cpu_AtomicAdd
topology: remove non-thread safe caching, expose ApicIds, use ModuleInit
x86_x64: use ModuleInit instead of unsafe static flags; zero-init regs
instead of just setting ecx
ModuleInitState now holds the LibError returned by the init callback (so
that the second init doesn't appear to succeed despite the first
failing)
wnuma: cleanup, add ACPI SLIT relative distance detection

This was SVN commit r7741.
2010-07-12 12:57:58 +00:00
Ykkrosh 5fec6c40dd Set svn:eol-style native
This was SVN commit r7655.
2010-07-01 16:58:44 +00:00
janwas eb5f0ce639 fix logic error for CPUs lacking xAPIC (thanks to Brian for reporting this)
This was SVN commit r7628.
2010-06-19 18:22:47 +00:00
janwas 4fa5f1892b # fix CPU detection issue
i3 CPUs report a *maximum* of 8 cores/package, which caused the number
of processors to be misreported as 0 (but only because the APIC IDs were
skipped because the CPU generation was deemed to low, which was due to
failing to consider extended family/model)
thanks to titanforever for reporting this.

This was SVN commit r7626.
2010-06-12 20:21:28 +00:00
Ykkrosh 202b13d557 Fix the calling conventions properly this time (I hope)
This was SVN commit r7542.
2010-05-13 16:22:07 +00:00
Ykkrosh f728050b3f Use correct calling convention on x86-64 OS X
This was SVN commit r7541.
2010-05-13 15:31:49 +00:00
Ykkrosh 672b1221c3 Disable executable stacks in .asm files
This was SVN commit r7408.
2010-03-28 18:20:46 +00:00
janwas 1861448e6c needed to split lib into separate headers and source files, which requires lots of drudgery to specify paths for each include filename (no longer relying on same-directory lookups)
also rename wchar -> utf8 to avoid conflict with <wchar.h> (requires
rebuild of workspace)
(unfortunately copying history fails to "502 bad gateway"; had to delete
old + add new independently)

This was SVN commit r7340.
2010-03-01 14:52:58 +00:00
janwas adb3847e38 export pthread and byte_order functions
remove ia32_memcpy (no longer provides performance benefit for >= SSE2
CPUs)

This was SVN commit r7339.
2010-03-01 13:54:33 +00:00
janwas c2fd939898 license change to the more permissible Expat/MIT license for lib/ (see forum thread)
This was SVN commit r7316.
2010-02-08 16:23:39 +00:00
janwas cdf0ef1908 add SSE4 cap bits
This was SVN commit r7315.
2010-02-08 15:56:43 +00:00
janwas 03726c0b54 ICC build fixes
warning fixes
get rid of SAFE_WCSCPY and SAFE_STRCPY

This was SVN commit r7239.
2010-01-01 15:33:07 +00:00
janwas e29d5a779f fix: wprintf: buffer mustn't be unicode (caught by self-test)
test_wdbg_sym - reenable, add test for basic stack walking
ia32_GetCallTarget - move frequent cases to front, add support for ILT
function trampolines
wdbg_sym: fix: ia32_walk_stack wasn't setting AddrStack; fix string
output

This was SVN commit r7163.
2009-11-04 14:24:54 +00:00
janwas a46f3432f3 harmless changes in preparation for moving to unicode
ia32: fix: ia32_GetCallTarget wasn't always initializing target
x86_x64: use macro implementation for rdtsc to reduce timing overhead

This was SVN commit r7160.
2009-11-03 16:30:21 +00:00
janwas 93ab45e434 simplify file implementation (remove unnecessary layer of abstraction)
ensure struct stat has 64-bit fields on windows
also fixed some warnings

This was SVN commit r7120.
2009-08-24 21:04:01 +00:00
Ykkrosh 373ed7fcb4 Avoid spurious Valgrind uninitialised-value warnings
This was SVN commit r7070.
2009-08-03 20:56:00 +00:00
Ykkrosh 6714d80fba Fix memory leak, Valgrind warnings
This was SVN commit r7051.
2009-07-28 20:13:26 +00:00
janwas 2a0025bc28 # fix warnings and 64-bit bugs in headerless.cpp (workspace update required)
(hopefully fixes often-reported crashes on 64-bit Linux)
remove lib/precompiled.cpp to simplify PCH handling in build system

This was SVN commit r7006.
2009-07-16 23:53:46 +00:00
Ykkrosh df36e937f0 Patch from #258: [FreeBSD compat] add some missing includes
This was SVN commit r7001.
2009-07-16 16:53:55 +00:00
janwas 9842b8df98 32/64-bit warning drudgery
also ensure off_t is always 64-bit (required at work)

This was SVN commit r6858.
2009-05-05 20:24:06 +00:00
Ykkrosh 1743645fd3 Simplify the overly-complex CppDoc-breaking file headers
This was SVN commit r6832.
2009-04-18 17:51:05 +00:00
Ykkrosh 214b0e6683 Removed outdated licensing information
This was SVN commit r6831.
2009-04-18 17:17:34 +00:00
Ykkrosh c9fa7f13d9 Add GPL header
This was SVN commit r6830.
2009-04-18 17:00:33 +00:00
Ykkrosh 7a4dd7b473 Set svn:eol-style=native
This was SVN commit r6828.
2009-04-18 16:14:48 +00:00
janwas 60f48f558d # infrastructure improvements
make off_t pointer-sized (required for >4gb files at work)
add shared_ptr deleter for free(), add ASSUME_ALIGNED, warning fixes

This was SVN commit r6826.
2009-04-18 08:41:10 +00:00
janwas d43636f8ae work-related additions:
x86_x64.cpp: detect TLBs (a major undertaking :/)
mem_util: export functions
win.h: hopefully avoid warnings from either vc2008 and vc2005 about
already defined win32 version macros
wnuma: revise large page heuristic (cause of slowdown is now known)

This was SVN commit r6600.
2009-01-06 20:17:06 +00:00
janwas 16ccae10cd # fix warnings
more icc11 fixes - mostly type conversion and noncopyable (now made a
macro)

This was SVN commit r6536.
2008-12-17 16:32:46 +00:00
janwas 1f065ffb02 fix gcc compile error
This was SVN commit r6461.
2008-11-03 07:46:30 +00:00
janwas 841293ee0a minor improvements from work
This was SVN commit r6419.
2008-10-13 15:08:30 +00:00
janwas 34b418e0c1 slight improvement, use ARCH_X86_X64 instead of ARCH_IA32||ARCH_AMD64
This was SVN commit r6411.
2008-09-27 10:23:05 +00:00
janwas 4132549c2c 64-bit fixes (the parts of lib/ in use at work are now fully operational in 64-bit mode)
- x86_x64.cpp: fix: test ARCH_AMD64 instead of ARCH_IA32 because both
are defined on x64
- manifest.cpp: fix processor architecture
- wdbg_heap.cpp: only enable on ia32
- winit, wstartup: take (lack of) name mangling into account

compiler.h: add STRINGIZE and DECORATED_NAME for use by winit
dir_watch: fix: smart pointers were never actually released due to a
remaining reference

This was SVN commit r6375.
2008-09-16 17:46:45 +00:00
janwas 2624069993 replace most BIT macros with a Bit() template for better 64-bit safety
test_bits: add tests for all routines in bits.h
hpet: add safety check
unit.h, bits.h, DOMEvent.h: change T(~0) to ~T(0) (required when T is
64-bit)

This was SVN commit r6335.
2008-09-06 21:15:53 +00:00
janwas 9f909073b4 fixes from work
- file: prevent error when closing a file twice (e.g. close and dtor)
- file_system_posix: export from DLL
- path_util: add some unicode versions of functions
- ia32: robustify, prevent hook reentry due to failure in disassembly,
gracefully handle breakpoints that overwrite code
- wdbg_heap: fix wdbg_heap_Validate

This was SVN commit r6264.
2008-07-21 20:43:37 +00:00
Ykkrosh 0f9294ce17 Fixed some strict aliasing warnings
This was SVN commit r6252.
2008-07-19 00:36:42 +00:00
Ykkrosh 49f0feb969 Fixed Linux build more
This was SVN commit r6168.
2008-07-01 21:43:08 +00:00
janwas b79375a0c5 color conversion: avoid type punning by returning SColor4ub directly. that required a non-extern-C declaration of the SSE function, so i replaced it with straightforward intrinsics.
ia32: no longer needs #if since build system ensures it's not compiled
on amd64

This was SVN commit r6164.
2008-06-30 19:08:29 +00:00
janwas a3696c0b91 premake: detect processor architecture from script
lib/sysdep: clean up by moving OS and cpu-arch folders into "os" and
"arch" folders

This was SVN commit r6162.
2008-06-30 17:34:18 +00:00