Allow unaligned load/store in QVM interpreter/x86 compiler
constructions like (dataMask & ~3) was used to protect against out-of-bound load/store when address is 4-byte closer to dataMask but at the same time it effectively cut low address bits for ALL load/store operations which is totally wrong in terms of conformance to ALLOWED (i.e. generated by q3lcc from C sources) low-level operations like packed binary data parsing
This commit is contained in:
parent
abce15055c
commit
566fb0edfc
4 changed files with 17 additions and 14 deletions
|
@ -170,6 +170,7 @@ struct vm_s {
|
|||
|
||||
byte *dataBase;
|
||||
int dataMask;
|
||||
int dataAlloc; // actually allocated
|
||||
|
||||
int stackBottom; // if programStack < stackBottom, error
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue