Commit graph

1632 commits

Author SHA1 Message Date
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
f981087d7a - Merge http://svn.icculus.org/tremulous?view=rev&revision=2185, patch by Chris Schwarz
- Remove Q_snprintf as Com_sprintf exists already
2011-06-15 15:31:37 +00:00
Thilo Schulz
a447aa82af Fix #if macros for idx64 and id386 2011-06-15 14:10:20 +00:00
Thilo Schulz
a5035841d2 Project files for Microsoft Visual Studio 10. Has x86 and x64 build configurations (#2681) 2011-06-15 03:36:11 +00:00
Thilo Schulz
001cdf4497 - mingw64 now links against SDL64.dll to allow for 32 and 64 bit version in the same directory
- Add library files for MinGW64
2011-06-13 15:47:43 +00:00
Thilo Schulz
206edd3419 - Still forgot qasm-inline.h
- Leave GCC more freedom in choice of registers
2011-06-13 11:07:13 +00:00
Thilo Schulz
04821a529d Forgot the inline assembler parts, here they come! Using inline asm to get rid of all the boilerplate stuff 2011-06-13 10:54:37 +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
471182cba0 Add static SDL libraries for compilation with MSVC 2011-06-12 15:28:44 +00:00
Thilo Schulz
c2b7f5173f Fix forgotten IQM2 support in iqm.h, patch by Zack Middleton 2011-06-11 20:20:30 +00:00
Thilo Schulz
fa3b3978f6 Bug 5034 - q3_ui: fill whole screen and allow cursor to move to edge in widescreen, patch by Zack Middleton 2011-06-11 20:18:16 +00:00
Thilo Schulz
45f576bd99 Bug 5036 - Grappling hook does not load trail shader, patch by Zack Middleton 2011-06-11 15:29:57 +00:00
Thilo Schulz
8ec565b58e Bug 5035 - Automatically selecting player model in q3_ui does not work if skin is not specified, patch by Zack Middleton 2011-06-11 15:26:36 +00:00
Thilo Schulz
b96c1c8279 Fixes to IQM support, by Zack Middleton
- Bug 5029 - IQM skin support for upper case surface names
 - Bug 5030 - IQM version 2 support
 - Bug 5031 - Animated IQMs cause segfault
 - Bug 5032 - IQM does not setup tag axis/origin correctly
 - Bug 5033 - IQM bounds swap and segfault issues
2011-06-11 15:16:25 +00:00
Thilo Schulz
7a4ce592a4 - Adapt MSVC project files to new libjpeg, fix by Guillaume Bougard and cyrri
- add tr_model_iqm.c to MSVC project, by cyrri
2011-06-06 21:15:42 +00:00
Tim Angus
b921058a9f * Remove misleading comment 2011-06-06 16:55:38 +00:00
Thilo Schulz
f5deb4a88b Fix return values for several syscall functions, patch by Zack Middleton (#5018) 2011-06-06 15:08:00 +00:00
Thilo Schulz
eec06674fa (#5016) - Calls to trap_CM_PointContents don't update their origins based on moving entities (water). Patch by Ensiform 2011-06-06 15:05:10 +00:00
Thilo Schulz
960dca2cd4 Makefile fix for mips architecture (#4995):
Fixes the \n in the $ARCH variable for IRIX/mips

Patch by Patrick Baggett
2011-06-06 15:03:27 +00:00
Thilo Schulz
bd2b704c91 OpenBSD compile fixes, patch provided by Jonathan Gray (#4994) 2011-06-06 14:59:54 +00:00
Thilo Schulz
e676b41c8f Fix wrong usage info message for cmd dumpuser, patch by Zack Middleton (#5024) 2011-06-06 14:54:18 +00:00
Thilo Schulz
0c43133695 Properly fill in occurances of "foobar" in GPL file headers, patch by Zack Middleton (#5024) 2011-06-06 14:52:49 +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
558ed62771 0 --> NULL 2011-05-15 14:58:56 +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
3125035c23 Fix typecast 2011-05-14 20:24:34 +00:00