Thilo Schulz
23f6fd1633
Bug 5094 - Code cleanup, patch by Zack Middleton and DevHC. Fixes unused-but-set gcc warnings
2011-07-29 12:27:00 +00:00
Thilo Schulz
2f502aceb2
- Fix opStack size for vm_x86.c
...
- Change opStack alignment to 16 for vm_x86_64.c
2011-06-27 20:22:32 +00:00
Thilo Schulz
19f54e5400
Allow recursive VM entry for VM operations as well
2011-06-23 00:00:27 +00:00
Thilo Schulz
95691ded36
Fix x64 compilation on MSVC
2011-06-21 12:32:43 +00:00
Thilo Schulz
8b7870b81f
Fix wrong macro. MSVC win32 build should work again now.
2011-06-16 02:01:13 +00:00
Thilo Schulz
83522282f1
Various fixes to vm_interpreted.c:
...
- Add opStack protection
- Fix dataMask check for OP_BLOCK_COPY
- Add instruction number check for conditional jumps
- Make errors in VM_PrepareInterpreter nonfatal
2011-06-16 01:11:45 +00:00
Thilo Schulz
a447aa82af
Fix #if macros for idx64 and id386
2011-06-15 14:10:20 +00:00
Thilo Schulz
03201aff22
- Add MASM assembler files for MSVC x64 projects to support vm_x86 in x64 mode
...
- Clean up ftol()/snapvector() mess
- Make use of SSE instructions for ftol()/snapvector() if available
- move ftol/snapvector pure assembler to inline assembler, this will add x86_64 and improve support for different calling conventions
- Set FPU control word at program startup to get consistent behaviour on all platforms
2011-06-13 09:56:39 +00:00
Thilo Schulz
71b8fe477d
- Use EmitCallDoSyscall() to call the jump violations function which guarantees 16-byte stack alignment
...
- Add x64 code for MSVC _asm() blocks, not tested yet.
2011-06-06 14:29:45 +00:00
Thilo Schulz
c174143dc2
- Add x86_64 support to vm_x86.c
...
- Fix warning on mingw64
2011-06-01 15:17:18 +00:00
Thilo Schulz
4b1418c4ad
- Implement opStack protection: Use register %ebx for scaled indexed addressing mode to access opStack, make opStack push/pop operate on %bl portion only
...
- Add a third pass to VM compilation for computation of jump address offsets, removing the need to dereference into vm->instructionPointers[] for every call/jump
- Make use of 0F opcode prefix relative jumps
- Call Com_Memcpy for OP_BLOCK_COPY
- Fix several missing range checks for vm->dataBase memory access
2011-05-23 00:46:46 +00:00
Thilo Schulz
b8ef880d85
I don't seem to get these constraints right. This should fix it
2011-05-19 03:47:35 +00:00
Thilo Schulz
a42239e1e5
Fix VM call for release version, bug introduced by myself in r1994
2011-05-18 16:06:08 +00:00
Thilo Schulz
3f9ec83ce0
- Use edx for CALLs instead of ecx, as the latter does not require any push to stack
...
- Make Linux AT&T asm code consistent with the MASM codeblock
2011-05-17 12:07:56 +00:00
Thilo Schulz
017bc7e5da
- Add vm_x86.c optimization patch by Eugene C.
...
- Remove ASM syntax specific code (AT&T vs MASM) for OP_CALL and replace with machine code
2011-05-15 13:15:14 +00:00
Thilo Schulz
716caf396e
- Reverting accidentally committed vm_x86.c
...
- Last commit contained some refactoring for vm_x86_64.c
2011-05-14 14:39:48 +00:00
Thilo Schulz
30059eb8ce
ensure that ent->classname is always non-null (for entity numbers up to level.num_entities-1, and ENTITYNUM_WORLD and ENTITYNUM_NONE), for player entities and #ENTITYNUM_NONE in particular, patch by DevHC
2011-05-14 14:34:18 +00:00
Thilo Schulz
36314a1622
Add error handling to malloc as well
2011-05-09 15:40:30 +00:00
Thilo Schulz
e05c9ad1c2
- Make some string functions in g_cmds.c cleaner, by DevHC
...
- embed VM_FREEBUFFERS() macro in do-while-loop
2011-02-10 18:56:18 +00:00
Thilo Schulz
544a1c0c1a
- Use MAP_FAILED error code for check whether mmap() was successful
...
- Replace various malloc() with Z_Malloc
- Fix several memory leaks when VM compilation failed and Com_Error is called
- Make failed mmap/VirtualAlloc/malloc calls fatal
2011-02-10 18:45:28 +00:00
Ludwig Nussel
c51d99117c
use mmap on freebsd too
2010-11-22 07:12:35 +00:00
Tim Angus
5663ff1362
* (bug #4249 ) Fix buffer overflow in x86 VM
2009-10-19 23:01:00 +00:00
Ryan C. Gordon
33beb9df27
Patched to compile.
2009-09-15 05:30:08 +00:00
Ryan C. Gordon
bccd80e523
Added Intel CC compatibility to vm_x86.c's inline asm.
...
Fixes Bugzilla #3338 .
2009-09-15 03:42:29 +00:00
Ludwig Nussel
84fbc2252f
align stack before re-entering engine to make sse work ( #4051 )
2009-05-02 17:15:51 +00:00
Tim Angus
1af6eb9592
* More robust x86 vm entrypoint/callback assembly (Tron)
2008-08-17 23:22:06 +00:00
Tim Angus
9a5d971705
* Fix memory leak in win32 VM code (arQon/dmitry)
2008-08-06 16:09:29 +00:00
Tim Angus
672cfbf16f
* Merge unified-sdl to trunk
...
* Bump Q3_VERSION to 1.35
2007-09-05 18:17:46 +00:00
Tim Angus
0c99c0c1d2
* Fix a few -pedantic warnings
2007-07-25 21:28:15 +00:00
Thilo Schulz
a08a539c10
Fix JIT compiler code execution on NX-protected win32 OS
2006-05-15 15:57:02 +00:00
Ludwig Nussel
39f2e449b6
use mmap to allocate memory for generated code to be able to set PROT_EXEC
2006-03-04 11:14:44 +00:00
Ludwig Nussel
4c242115dc
- change long to intptr_t for 64bit windows compatability
...
- change vmMain arguments back to int. 64bit types are apparently not
needed there. Only the syscall function needs them.
2006-02-18 19:07:23 +00:00
Tim Angus
e74947be2c
* x86 OS X support
2006-01-15 15:22:13 +00:00
Tim Angus
e95f1f2106
* Fix to the gcc4/-O0 x86 JIT compiler bug
2006-01-06 00:04:05 +00:00
Tim Angus
05e8ab9538
* Added STATUS
...
* Updated TODO
* Moved ChangeLog to root
* Updated ChangeLog
* s/Foobar/Quake III Arena Source Code/
* Biggest patch EVAR. I wonder how many mail boxes this will fill...
2005-10-29 01:53:09 +00:00
Tim Angus
ffdc69f138
* Deleted code/unix/vm_x86.c - wtf was that about anyway?
...
* Removed HAVE_VM_NATIVE
* Removed DLL_ONLY
* Replace HAVE_VM_COMPILED with NO_VM_COMPILED -- this means the JIT compiler
should be enabled on the OS X and VC builds now
* Remove the remainder of the freetype building stuff
2005-10-29 00:23:10 +00:00
Tim Angus
35cb35ff61
* (Non-trivial) fix to the "opStack corrupted in compiled code" bug
2005-10-13 14:47:00 +00:00
Ludwig Nussel
d5fbff3f44
revert int->long change as it breaks on 64bit. Actually only
...
VM_CallInterpreted hurts as VM_CallCompiled is only used on 32bit. Use
same arg types for consistency nevertheless.
2005-09-26 22:23:46 +00:00
Tim Angus
cde9e9e93c
* Fixed some long/int warnings, hopefully this doesn't disrupt the MSVC and/or 64bit builds
2005-09-26 16:13:14 +00:00
Tim Angus
1ad7f9cff1
* Fix to broken win32 fix patch
2005-09-26 13:47:59 +00:00
Zachary Slater
aff4d7d858
Hopefully this will fix win32 msvc.netsuperduper++220000 extra entropy edition
...
compilation, and I updated the readme a little apparently.
2005-09-26 02:36:52 +00:00
Tim Angus
4bc5c29115
* FreeBSD fixes/updates from Andreas Kohn
2005-09-25 22:04:51 +00:00
Tim Angus
2b8395a4d0
* Replaced lots of __linux__ || __FreeBSD__ with __GNUC__
...
* MinGW port now uses asm versions of SnapVector and ftol
* Improved the handling of mangled symbols in vm_x86.c
2005-09-23 02:59:15 +00:00
Tim Angus
fcaf343d7f
* Port to MinGW
2005-09-22 03:21:33 +00:00
Ludwig Nussel
5ae70d54b0
remove svn:executable property
2005-08-28 17:54:51 +00:00
Zachary Slater
8b1d93b397
Patching from floam with some edits by myself:
...
I was working on a patch earlier to fix some more things up to be more
modern, and I added a couple lines from that cleanup patch I showed you
on irc. Some commented code was removed, some stuff was made to not be
broke (old head usage), the makefile should install things better, and a
a few GCC warnings were gagged. I also attempted to version it but
you'll probably want to change that to whatever versioning rules you
decide on using.
2005-08-28 03:46:44 +00:00
Zachary Slater
59cce31e75
newlines fixed
2005-08-26 17:39:27 +00:00
Zachary Slater
5b755058f5
Itsa me, quake3io!
2005-08-26 04:48:05 +00:00
Travis Bradshaw
dbe4ddb103
The Quake III Arena sources as originally released under the GPL license on August 20, 2005.
2012-01-31 13:41:34 -06:00