1
0
forked from 0ad/0ad
Commit Graph

94 Commits

Author SHA1 Message Date
0ec4242962 Detect and fix printf signedness errors. Fixes #1086, #1087.
This was SVN commit r10846.
2012-01-01 16:43:10 +00:00
78ba79209d more minor fixes. rename uname.machine to x64 (less confusing than amd64)
This was SVN commit r10827.
2011-12-29 09:47:42 +00:00
0d05c96be2 [gcc] compile fix.
fixes #1074
thanks to Echelon9!

This was SVN commit r10816.
2011-12-27 18:56:20 +00:00
3537ae31d5 sync with work:
x86_x64: update MSR definitions to include model 2F (westmere ex);
update bus clock computation for sandy bridge; remove unused
cpu_Serialize; use namespace, add model names
mahaf: cope with stricter security for services/drivers
ApicId -> GetApicId, move to apic module
aken: add batch file to install driver (optional)

This was SVN commit r10815.
2011-12-27 14:12:31 +00:00
8ac994e4e6 sync with work: add and use NOTHROW; export file_system functions; throw Status from File ctor; add WARN_THROW equivalents of WARN_RETURN
This was SVN commit r10384.
2011-10-10 10:04:36 +00:00
a106b9da0b apic: avoid warning message for ancient single-core, non-HT processors. fixes #985
wvm: improve diagnostics if allocation failed

This was SVN commit r10374.
2011-10-08 16:53:57 +00:00
0d708b31b4 avoid rare init-order bug when SRAT ACPI table is available AND APIC IDs are NOT
move APIC-related code to separate file, with its own initialization to
avoid circular dependency
fixes #976

This was SVN commit r10315.
2011-09-24 19:47:13 +00:00
153357f640 Replaces architecture-dependent cpuid function with inline GCC assembly. Should fix #670 by eliminating nasm dependency.
This was SVN commit r9891.
2011-07-21 01:44:29 +00:00
15df4aa4be OS X fix: if os_cpu_ClockFrequency reports an unknown/invalid value, measure the frequency instead; also avoid reporting invalid freqs in system_info
This was SVN commit r9886.
2011-07-20 08:10:36 +00:00
8da2640f5e Fixes no-PCH build
This was SVN commit r9883.
2011-07-19 09:00:15 +00:00
0d23e3f333 post-alpha sync with work.
debug stack trace fixes, remove more asm, change CONTINUE/OK scheme to
OK/ALL_COMPLETE, fix tests

This was SVN commit r9871.
2011-07-18 09:21:56 +00:00
2d9e473483 fix for non-contiguous APIC IDs within a single package (happens on recent Intel CPUs)
This was SVN commit r9870.
2011-07-18 08:08:06 +00:00
dd054c8d97 acpi: fix cast error (caught by runtime check)
x86_x64: simplify MSC version check

This was SVN commit r9846.
2011-07-16 17:27:07 +00:00
a4637c25d0 Fix no-PCH builds
This was SVN commit r9786.
2011-07-08 15:07:08 +00:00
034881d30c sync with work. simplify wnuma, refactor+fix topology (bugs: APIC IDs array didn't correspond to OS processor number; couldn't handle noncontiguous APIC ID field values)
This was SVN commit r9580.
2011-05-30 13:00:20 +00:00
7523894760 ENSURE(0) -> DEBUG_WARN_ERR(ERR::LOGIC) (a bit smaller, and more descriptive)
This was SVN commit r9423.
2011-05-04 12:10:17 +00:00
cccd6849a7 cleanup (requires update-workspaces)
lib_errors.cpp: replace with status.cpp, adapt to needs at work
wutil: fix runtime warning reported via feedback box
config: merge CONFIG_PARANOIA and !CONFIG_FINAL into
CONFIG_ENABLE_CHECKS
add openmp, pointer_typedefs.h

This was SVN commit r9410.
2011-05-03 12:38:42 +00:00
0720025073 cleanup
reduce dependency on PCH. move KiB constants to alignment, ARRAY_SIZE to
code_annotation.h.
move glext_funcs.h to external_libraries/glext_funcs.h, move part of
ogl.h to external_libraries/opengl.h
remove unused saturating arithmetic functions

This was SVN commit r9363.
2011-04-30 13:22:46 +00:00
4663ac0fe7 split debug_assert into ENSURE and ASSERT as discussed in a previous meeting.
the old debug_assert always ran and tested the expression, which slows
down release builds. wrapping them in #ifndef NDEBUG is clumsy. the new
ASSERT behaves like assert and ENSURE like the old debug_assert. Let's
change any time-critical but not-super-important ENSURE to ASSERT to
speed up release builds. (already done in bits.h and unique_range.h)

This was SVN commit r9362.
2011-04-30 13:01:45 +00:00
6c915291cc cleanup (requires update-workspaces):
major refactor of wfilesystem - remove gotos and workaround for FAT file
times
replace more round_up of constants with Align<>
remove old unused allocators (STL aligned, matrix, some shared_ptr)
move allocator utils into separate headers.
remove lockfree, wterminal
avoid testing __cplusplus

This was SVN commit r9361.
2011-04-30 12:34:28 +00:00
b35d3a5e3d __cpuidex was added in VC2008 SP1, so don't use it if pre-SP1
This was SVN commit r9284.
2011-04-19 23:23:16 +00:00
c59f7bcb8f Fix Clang warning ("operands of ? are integers of different signs")
This was SVN commit r9214.
2011-04-09 00:07:21 +00:00
dcde67038f ICC compile fixes (VC's overload resolution is apparently quite different)
This was SVN commit r9169.
2011-04-05 17:45:47 +00:00
d5b3201bfe noted while checking MSR prerequisites that the previous HasNehalem is inaccurate. PLATFORM_INFO is also supported by newer processors (e.g. Sandy Bridge), whereas UNCORE_* are tied to Nehalem and Westmere => split up HasNehalem into HasPlatformInfo and HasUncore. (the latter has been replaced by a "system agent" in newer designs)
refs #754

This was SVN commit r9136.
2011-03-31 21:30:42 +00:00
9a22dc1351 warning fixes
This was SVN commit r9088.
2011-03-21 11:55:49 +00:00
44e1a863e1 Fix cache detection assertion failure
This was SVN commit r9085.
2011-03-19 15:16:14 +00:00
0af8cdc54a Fix likely cache table typos, based on Intel Software Developer's Manual.
This was SVN commit r9084.
2011-03-19 15:03:25 +00:00
fb499ff0d0 further refactoring of new cache detect code
- add invariant - level/type are always valid, numEntries indicates
whether the cache is actually present and not disabled
- handle pseudo-descriptors 0xF0 and F1 (avoids warning)

This was SVN commit r9083.
2011-03-19 12:48:56 +00:00
89b7b6b52d Avoid divide-by-zero on AMDs with missing caches
This was SVN commit r9081.
2011-03-18 19:48:54 +00:00
22a651bb86 Fix assertion failure when no L3 cache.
Fix typo.

This was SVN commit r9078.
2011-03-18 18:42:10 +00:00
5b91e2d7ab move cache detection into separate file.
add support for CPUID.2 cache descriptors (many Bothans died to bring us
this information)
simplify the API - use one structure to describe cache and TLB; only one
accessor for both.

HWDetect: version change, since dtlbs and itlbs are no longer
distinguished

fixes #752

This was SVN commit r9074.
2011-03-18 16:44:03 +00:00
d3929b6af1 Actually, delete the cpuid() inline asm entirely since it still causes various problems in various compilers
This was SVN commit r9024.
2011-03-05 14:11:57 +00:00
712a92caa1 Save PIC register in cpuid() to fix "can't find a register in class 'BREG'" error in some versions of GCC
This was SVN commit r9023.
2011-03-05 13:53:02 +00:00
bb562ce179 fixes:
avoid reporting a (not-present) third-level cache for Athlon X2 that
don't have one
add better documentation of cache information
ensure we're running on the same CPU while retrieving cache/TLB
descriptors
wgfx: always check all known graphics driver names (more robust in the
face of changing gfx_card strings), correct the intel driver name

This was SVN commit r8991.
2011-02-26 19:22:02 +00:00
4e8c305c6e sync with work - export app_hooks_update; add boost replacement FileExists and FileSize; avoid conflict with stdint.h;
remove asm rintf implementation (sse is faster); avoid the need for an
external 64-bit asm file with vc2008/vc2010; allow arbitrarily long
command line args

This was SVN commit r8985.
2011-02-25 16:31:42 +00:00
ceb4bc9b94 Report more hardware details
This was SVN commit r8937.
2011-02-19 00:39:32 +00:00
ddba0cc311 topology.cpp: fix for non-contiguous APIC IDs
wcpu: avoid undefined shift right on 64-CPU systems (caught via
assertion)
filesystem: add wrename
path_util: add std::wstring variants of common boost::filesystem
routines

This was SVN commit r8922.
2011-02-15 10:38:11 +00:00
fd46b9e370 fixes/improvements from work:
file/wfilesystem: avoid error dialog when opening a file that doesn't
exist
precompiled/pch_warnings: remove push/pop that prevented our warning
disables to applying to other code. update comments
topology: refactor APIC field access and add support for constructing
APIC ID from topology
waio: add file_attribute_normal
wsysdep: slightly safer sys_generate_random_bytes implementation

This was SVN commit r8869.
2011-01-28 13:40:07 +00:00
ba2a9d7af3 improvements from work: [update-workspaces required]
- split precompiled.h into several headers (simplifies reuse)
- enable additional warnings not in W4
- split ErrorReaction into ErrorReactionInternal - clarifies which
values can actually be returned by debug_DisplayError
- wsdl: slightly safer HDC usage via CS_OWNDC, avoid dipping into DC
cache via ValidateRect instead of BeginPaint; remove unused thread
create
- StdDeserializer - wasn't including byte_order => BYTE_ORDER was
undefined
- wsysdep: clean up error dialog message handling

This was SVN commit r8828.
2010-12-09 11:16:21 +00:00
404f7d4caa Don't put 64-bit OS X code in the 32-bit-only file. Do put it in the 64-bit-only file.
This was SVN commit r8687.
2010-11-24 17:08:00 +00:00
94dca529b1 Fix OS X build errors
This was SVN commit r8684.
2010-11-23 19:20:03 +00:00
383cf7b220 cleanup:
use intrinsics for cpu_AtomicAdd and cpu_CAS, get rid of the
corresponding assembly implementations. (wrapper functions are necessary
at work because mere declarations aren't enough to export the functions
from DLL)
also remove no longer needed fminf

This was SVN commit r8521.
2010-11-02 13:38:56 +00:00
52851faeb6 cleanup - remove old cpu_memcpy and cpu_i64FromDouble that are no longer needed
This was SVN commit r8517.
2010-11-01 11:09:03 +00:00
657ec9aa45 WIP timer thread safety:
CAS functions now implemented directly in external asm files (avoids
wrapper functions)
reinstated cpu_CAS64 (checking ARCH_IA32 at every call site is onerous)
(temporarily disable timer monotonicity check)

This was SVN commit r8515.
2010-11-01 09:54:03 +00:00
f5f65c23c0 OSX compat: remove cpu_CAS64 wrapper, since intptr_t and i64 apparently aren't compatible types. IA-32 code should call ia32_asm_CAS64 if it wants to CAS 64-bit values.
This was SVN commit r8080.
2010-09-05 15:38:34 +00:00
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
b89e86772b belatedly add files missing from 3d45069b3f (my bad)
This was SVN commit r7884.
2010-08-09 07:37:43 +00:00
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
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
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