Julian Seward
96a469f190
Change the x86 front end's implementation of shift instructions so
...
that 16/8 bit shifts by amounts up to 31 work correctly, and without
requiring any IR-level shifts beyond the word size.
git-svn-id: svn://svn.valgrind.org/vex/trunk@159
2004-07-29 23:41:47 +00:00
Julian Seward
7f5121f3ce
* Fix flag computation for neg instructions
...
* Fix flag and result computation for 16/8-bit shl/shr/sar by amounts
greater than the word size, which inconveniently is a well-defined
(if useless) operation on x86. Sigh. Unfortunately the solution
depends on IR shifts behaving as per x86, whereas it would be better
to define IR shifts only to make sense for values in 0 .. 2^word_size-1.
This needs to be fixed.
* Implement another shrd case. shrdl doesn't work correctly
according to the QEMU test suite. I don't know why.
git-svn-id: svn://svn.valgrind.org/vex/trunk@158
2004-07-29 22:26:03 +00:00
Julian Seward
83c70e60e2
Fix carry flag computation for left rotates.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@157
2004-07-29 22:22:31 +00:00
Julian Seward
121b045749
Comment-only change
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@156
2004-07-29 22:21:31 +00:00
Julian Seward
9511754a3b
Fill in many more cases thrown up the QEMU test program.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@155
2004-07-29 20:31:09 +00:00
Julian Seward
a280d1b89c
Fill in / fix many x86->IR->x86 cases exposed by QEMU's test-i386 program.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@154
2004-07-29 14:36:40 +00:00
Julian Seward
cac63d9c74
Add enough more x86 integer stuff to make bzip2 and gzip work.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@153
2004-07-29 01:40:11 +00:00
Julian Seward
b19d890468
Fix enough integer stuff to make bzip2 work, except for the
...
floating point bits.
git-svn-id: svn://svn.valgrind.org/vex/trunk@152
2004-07-29 00:09:58 +00:00
Julian Seward
b86a6aacf3
Pretty it up a bit (whitespace changes only).
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@151
2004-07-28 23:25:02 +00:00
Julian Seward
468a43e58d
Implement ROL/ROR and fix enough stuff to make ls -l work.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@150
2004-07-28 17:09:04 +00:00
Julian Seward
20c06d25ed
Fill in misc cases.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@149
2004-07-28 07:13:38 +00:00
Julian Seward
985a06f874
Fix bug in allocation of vregs for 64-bit IRTemps.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@148
2004-07-28 07:12:30 +00:00
Julian Seward
9e7b3bfd23
Fill in some add with carry and subtract with borrow cases.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@147
2004-07-28 07:11:32 +00:00
Julian Seward
3b377ccb8f
Further refine debug printing.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@146
2004-07-28 07:09:58 +00:00
Julian Seward
d9e2c9f867
Improve verbosity control, so that verbosity can be set individually
...
for each bb translated. Exploit this in vg_translate.c.
git-svn-id: svn://svn.valgrind.org/vex/trunk@145
2004-07-28 01:51:10 +00:00
Julian Seward
741f7e0eec
Add LOGICL.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@144
2004-07-28 01:50:05 +00:00
Julian Seward
0a83b6677d
Oops. Fix silly bug in iselCondCode.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@143
2004-07-28 01:49:14 +00:00
Julian Seward
d80b595b1a
Fix a couple more cases.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@142
2004-07-28 01:48:34 +00:00
Julian Seward
5d244298e0
Fix enough stuff so that 'hello world' works.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@141
2004-07-28 00:15:44 +00:00
Julian Seward
3d6c8f2ea6
Track file renaming.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@140
2004-07-27 10:54:21 +00:00
Julian Seward
7675725cb8
Fix bug in generation of immediate shifts.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@139
2004-07-27 10:50:38 +00:00
Julian Seward
bc9861ae93
More build fixes.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@138
2004-07-27 10:43:34 +00:00
Julian Seward
30c9d9a878
Make compilation work again after renaming files.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@137
2004-07-27 10:29:41 +00:00
Julian Seward
07c6141395
More file renaming (still borked)
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@136
2004-07-27 09:50:39 +00:00
Julian Seward
0f4b52f315
Rename some files.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@135
2004-07-27 09:42:46 +00:00
Julian Seward
490a8f90a9
Reinstate the "xor %reg,%reg" idiom handler.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@134
2004-07-27 09:30:31 +00:00
Julian Seward
6e93128618
x86toIR: implement 'rep scas'
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@133
2004-07-27 00:15:59 +00:00
Julian Seward
cedfe3cbd2
Print vex storage stats at the end.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@132
2004-07-26 23:31:15 +00:00
Julian Seward
12845e890c
Improve insn selection for shifts by literal amounts.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@131
2004-07-26 23:27:08 +00:00
Julian Seward
282c0efa61
Fix enough bits and pieces so "int main (void) { return 0; }" works.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@130
2004-07-26 22:39:11 +00:00
Julian Seward
aeddaca2ff
Try and print a bit faster.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@129
2004-07-26 02:05:49 +00:00
Julian Seward
04fc72110e
Startup delay and debug printing wibbles.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@128
2004-07-26 02:05:26 +00:00
Julian Seward
52702e3b6f
Fix bug in assembly of shifts.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@127
2004-07-26 02:04:54 +00:00
Julian Seward
642e9fce89
Fill in a few more thunks cases.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@126
2004-07-25 23:39:13 +00:00
Julian Seward
50647cc68d
Fix startup stuff a bit.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@125
2004-07-25 23:37:53 +00:00
Julian Seward
f74088b1b6
More eflags thunks.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@124
2004-07-25 18:18:03 +00:00
Julian Seward
be98732297
More helpers.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@123
2004-07-25 18:00:18 +00:00
Julian Seward
b5adf8b182
Make --stop-after= work.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@122
2004-07-25 17:26:40 +00:00
Julian Seward
3f74d15a10
Add a few more flag evaluation routines.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@121
2004-07-25 17:25:55 +00:00
Julian Seward
ea8badf1bd
Observe caller-supplied limit on # of insns allowed in a bb.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@120
2004-07-25 17:25:06 +00:00
Julian Seward
13e1690aee
Fix some bug or other to do with moving values out of the way
...
of rreg live ranges too early. All this stuff needs revisiting.
git-svn-id: svn://svn.valgrind.org/vex/trunk@119
2004-07-25 17:24:02 +00:00
Julian Seward
89272ed666
More hacked104 hookups, including the first eflags thunk calculation
...
routine.
git-svn-id: svn://svn.valgrind.org/vex/trunk@118
2004-07-25 01:24:28 +00:00
Julian Seward
a328a95326
Integration stuff to make the 104 testbed work.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@117
2004-07-25 00:07:35 +00:00
Julian Seward
f146445017
Add a hacked version of 1.0.4 as a test bed for Vex.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@116
2004-07-24 14:21:10 +00:00
Julian Seward
95bc08e053
Delete this directory.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@115
2004-07-24 14:16:51 +00:00
Julian Seward
df7a87671c
Delete this stuff. Not part of vex.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@114
2004-07-24 14:16:04 +00:00
Julian Seward
041565a8b7
Clean up unused stuff.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@113
2004-07-24 14:14:24 +00:00
Julian Seward
40573eab36
Add mechanisms for calling helper functions from generated code.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@112
2004-07-24 13:12:23 +00:00
Julian Seward
33c7cd3876
Compilation fixes for gcc-2.96.
...
git-svn-id: svn://svn.valgrind.org/vex/trunk@111
2004-07-24 01:24:38 +00:00
Julian Seward
f98f07ea81
Fix bug causing real registers to be bought back into circulation
...
(moved from Unavail to Free) too early, following the end of fixed
live ranges. This was causing nonsense like "shl %cl,%ecx".
At the same time, greatly improve debug printing.
git-svn-id: svn://svn.valgrind.org/vex/trunk@110
2004-07-23 16:59:48 +00:00