Ludwig Nussel
d8b7532fc1
remove static VM_BlockCopy from vm_powerpc
2011-06-16 08:09:06 +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
7ac6b087af
Use Q_ftol for vm_interpreted
2011-06-16 01:26:17 +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
af5020c57c
- Don't try to load QVM/DLL files on pure servers
...
- Fallback after failed DLL load will be VMI_COMPILED, not INTERPRETED
2011-06-15 22:25:13 +00:00
Thilo Schulz
9219cde4e8
- Small change to search path order - local files not in .pk3s take precedence over files in pk3s. Should make life easier for modders/mappers wanting to override textures that are already contained in some older pk3
...
- Make VM loading more robust, change loading order: when vm_* == 0 first try loading DLL, then QVM in *each* search directory/path
- Fix FS_FileForHandle that would return a FILE pointer to invalid file handle 0
2011-06-15 22:09:26 +00:00
Thilo Schulz
1ff28b3b2e
Need space of len+1 for snprintf to work
2011-06-15 16:26:51 +00:00
Thilo Schulz
a447aa82af
Fix #if macros for idx64 and id386
2011-06-15 14:10:20 +00:00
Thilo Schulz
bb8f40531b
- Fix macro that uses constant float suffix as argument
...
- retval variables in ftola.c must have type long, not int
2011-06-13 10:39:42 +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
bd2b704c91
OpenBSD compile fixes, patch provided by Jonathan Gray ( #4994 )
2011-06-06 14:59:54 +00:00
Thilo Schulz
698a9c51ec
Fix newlines in Com_Error, patch by Zack Middleton ( #5023 )
2011-06-06 14:51:02 +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
3e229af710
Fix is*() functions for windows where long value is 4 bytes
2011-06-01 01:50:19 +00:00
Thilo Schulz
eedccac818
Fix compilation on mingw64
2011-05-31 20:47:18 +00:00
Thilo Schulz
bd8d60f55c
Add instruction number checks to jumps and calls to SPARC VM, patch by David Miller
2011-05-24 19:46:52 +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
e08299faf4
- Do assignment of value 0xDEADBEEF after the 4-byte alignment
...
- Add all GPR to clobber list as GCC function callAsmCall seems to change register r11 without saving it to stack first, which may result in SIGSEGV in VM_CallCompiled()
2011-05-23 00:36:27 +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
61d6e6eb68
Use scaled indexing mode n=4 for addressing opStack, this way we can use the 8 bit offset value in %%bl to address an OPSTACK_SIZE of 1024 which was the old value.
2011-05-18 00:17:02 +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
c7a68bf283
- Set default opStack size to 256
...
- Fix integer wraparound. opStack offset in rbx will always be >= 0
2011-05-16 18:17:01 +00:00
Thilo Schulz
5aa3da2f84
- Fix SEGV in while loop getop() after t = b = 0
...
- Fix iss8, iss16 and iss32 which would not correctly detect 32-bit signed integer range
- Add support for "addb", "subb" etc. assembler mnemonic
- Change opStack protection for x86_64 VM: No overflow checks necessary anymore as offset register is 1 byte long only
2011-05-16 17:55:07 +00:00
Thilo Schulz
01ed417ee1
Optimise VectorNormalize functions, patch by Matt Turner
2011-05-15 14:55:47 +00:00
Thilo Schulz
b003422d92
- Fix lokisetup makefile problems
...
- Bump version number to 1.36
2011-05-15 14:49:38 +00:00
Thilo Schulz
3cdfb7aea8
Refactor and bugfix COM_*Extension functions, patch by DevHC
2011-05-15 14:11:26 +00:00
Thilo Schulz
b509d770a7
- Remove Q_strrchr(), replace with standard, portable strrchr()
...
- Add strrchr() to bg_lib.c, patch by DevHC
2011-05-15 14:08:03 +00:00
Thilo Schulz
3ddc59a3ba
move MIN/MAX definition, use MIN() instead of min(), patch by DevHC
2011-05-15 13:27:24 +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
4cfb7d376b
Ffffuuuuuu I don't even know....
2011-05-14 14:28:31 +00:00
Thilo Schulz
c95bd0a684
Remove newlines from Com_Error message format strings, patch by DevHC
2011-05-12 14:02:48 +00:00
Thilo Schulz
a9696d3558
Refactoring patch by DevHC
2011-05-11 14:21:27 +00:00
Thilo Schulz
9706e6ca29
whoops, that one was not Com_Error()
2011-05-10 10:18:07 +00:00
Thilo Schulz
d0a095396e
- Remove newlines in Com_Error()
...
- Update register description
2011-05-10 10:07:34 +00:00
Thilo Schulz
a7ea395bd0
Add opStack protection to defend against malicious QVMs
2011-05-10 09:14:49 +00:00
Thilo Schulz
5f63ab9160
Choose better alignment for heavy-duty rendering structures, patch by Matt Turner ( #4981 )
2011-05-09 23:39:40 +00:00
Thilo Schulz
36314a1622
Add error handling to malloc as well
2011-05-09 15:40:30 +00:00
Thilo Schulz
876fd7dcb9
- Add HOMEPATH default name define to q_shared.c, patch by uZu ( #4973 )
...
- Reverted change from (#4972 ) and implemented the other suggestion to be consistent with cl_cgame.c and cl_ui.c
2011-05-04 15:39:35 +00:00
Thilo Schulz
d34c6b7e0b
Revert protocol 69 pending further discussion ( #4962 )
2011-04-27 20:17:45 +00:00
Thilo Schulz
a5580d8974
- Harden the client and server protocol against UDP spoofing attacks. This will defend ioquake3 against http://aluigi.altervista.org/papers/q3noclient.txt ( #3041 )
...
- Retains full compatibility to the old but unsecure protocol between clients and servers
- Harden the connection process against DoS attacks, possibly connected to UDP spoofing
2011-04-27 16:03:35 +00:00
Thilo Schulz
a0582fb21a
Fix a little quirk still
2011-04-26 02:32:05 +00:00
Thilo Schulz
797d127dfc
Use memcmp instead of self-built while loop
2011-04-26 02:30:12 +00:00
Thilo Schulz
6a203bc8e9
- Fix data alignment issue with glReadPixel call, reported by Guillaume Bougard ( #4954 )
...
- Fix data alignment issue in raw AVI recording for weird resolutions (like 1366x768)
2011-04-18 16:06:10 +00:00
Tim Angus
52ead6fa36
* Crash recovery for com_pipeFile (Lakitu7)
2011-03-30 21:58:31 +00:00
Ludwig Nussel
1b27ae23c1
include vm_local.h in vm_powerpc_asm.c
...
Patch by Simon McVittie, bug 4930
2011-03-13 16:54:41 +00:00
Thilo Schulz
641256f7f0
strtod exists in bg_lib.c now so Q_isanumber will work in the VMs, too.
2011-03-11 13:51:36 +00:00