]>
git.ipfire.org Git - thirdparty/valgrind.git/log
Julian Seward [Fri, 9 Sep 2005 10:25:39 +0000 (10:25 +0000)]
Cleanups:
- remove various unused vars
- try and use ea_standard/ea_rA_or_zero where possible to do
effective-address computations
git-svn-id: svn://svn.valgrind.org/vex/trunk@1378
Julian Seward [Fri, 9 Sep 2005 09:50:34 +0000 (09:50 +0000)]
rm unused vars in dis_int_ldst_str
git-svn-id: svn://svn.valgrind.org/vex/trunk@1377
Julian Seward [Fri, 9 Sep 2005 09:35:29 +0000 (09:35 +0000)]
Implement stswi/stswx.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1376
Julian Seward [Fri, 9 Sep 2005 08:33:03 +0000 (08:33 +0000)]
Enhance the dead-code removal pass so that it detects unconditional
side exits and deletes all code after them. This helps clean up the
IR created by {l,st}sw{i,x} from the ppc32 front end. It's also a
general transformation which ought to have been implemented long ago.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1375
Julian Seward [Fri, 9 Sep 2005 08:31:18 +0000 (08:31 +0000)]
Implement lswi and lswx. The generated IR should be good for
instrumentation by memcheck and does not reference any memory it
should not. Unfortunately the IR is long and inefficient.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1374
Julian Seward [Thu, 8 Sep 2005 17:53:03 +0000 (17:53 +0000)]
Reinstate stwbrx.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1373
Julian Seward [Thu, 8 Sep 2005 17:33:27 +0000 (17:33 +0000)]
Reinstate crand, crnand, crorc.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1372
Julian Seward [Tue, 6 Sep 2005 10:25:46 +0000 (10:25 +0000)]
Implement mftb{,u}.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1371
Julian Seward [Tue, 6 Sep 2005 09:55:27 +0000 (09:55 +0000)]
Remove some helper functions to do with flag handling. These are
unused because the relevant computations are now done in line.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1370
Julian Seward [Tue, 6 Sep 2005 09:10:09 +0000 (09:10 +0000)]
Reinstate lwbrx.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1369
Julian Seward [Mon, 29 Aug 2005 12:07:41 +0000 (12:07 +0000)]
Observe any externally supplied $(CC).
git-svn-id: svn://svn.valgrind.org/vex/trunk@1364
Julian Seward [Fri, 26 Aug 2005 18:00:31 +0000 (18:00 +0000)]
Don't even mention malloc, since it screws up statically linked, glibc
Valgrind.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1363
Julian Seward [Thu, 25 Aug 2005 21:34:24 +0000 (21:34 +0000)]
Implement MOVUPS -- move from G (xmm) to E (mem or xmm) [UNVERIFIED]
git-svn-id: svn://svn.valgrind.org/vex/trunk@1362
Julian Seward [Thu, 25 Aug 2005 21:20:18 +0000 (21:20 +0000)]
vex_printf/sprintf hackery.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1361
Julian Seward [Wed, 24 Aug 2005 10:56:01 +0000 (10:56 +0000)]
Build rflag thunk for adc/sbb correctly.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1353
Julian Seward [Wed, 24 Aug 2005 10:46:19 +0000 (10:46 +0000)]
amd64: Handle BT/BTS/BTR/BTC Gv, Ev.
x86: Fix signedness bug in existing BT/BTS/BTR/BTC Gv, Ev code.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1352
Julian Seward [Wed, 24 Aug 2005 10:01:36 +0000 (10:01 +0000)]
Fix incorrect building of the flags thunk after ADC and SBB.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1351
Julian Seward [Wed, 24 Aug 2005 09:22:39 +0000 (09:22 +0000)]
Enable ADC Ib, AL.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1350
Julian Seward [Tue, 23 Aug 2005 23:44:35 +0000 (23:44 +0000)]
Implement LOOP{,E,NE}.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1349
Julian Seward [Tue, 23 Aug 2005 23:26:37 +0000 (23:26 +0000)]
Rename a couple of inconsistently-named helper functions.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1348
Julian Seward [Tue, 23 Aug 2005 23:17:38 +0000 (23:17 +0000)]
Whitespace-only change.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1347
Julian Seward [Tue, 23 Aug 2005 23:16:51 +0000 (23:16 +0000)]
Implement RDTSC (amd64).
git-svn-id: svn://svn.valgrind.org/vex/trunk@1346
Julian Seward [Tue, 23 Aug 2005 19:30:58 +0000 (19:30 +0000)]
Rename a couple of inconsistently-named helper functions.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1345
Julian Seward [Tue, 23 Aug 2005 19:24:29 +0000 (19:24 +0000)]
Implement RDTSC on x86.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1344
Julian Seward [Tue, 23 Aug 2005 17:29:27 +0000 (17:29 +0000)]
Implement LOOP/LOOPE/LOOPNE.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1343
Julian Seward [Tue, 23 Aug 2005 15:41:40 +0000 (15:41 +0000)]
Enable testing of RCL insns.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1342
Julian Seward [Tue, 23 Aug 2005 15:41:14 +0000 (15:41 +0000)]
Support x86 RCL instructions.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1341
Julian Seward [Sun, 21 Aug 2005 00:48:37 +0000 (00:48 +0000)]
On a PPC32Instr_Call, don't merely record how many integer registers
carry parameters. Instead record the actual identities of such
registers in a bitmask. This is necessary because the PPC calling
conventions have "holes" in the register ranges. For example, a
routine taking an UInt(32-bit) first param and an ULong(64-bit) second
param passes the first arg in r3 but the second one in r5 and r6, and
r4 is not used.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1340
Julian Seward [Thu, 18 Aug 2005 11:50:43 +0000 (11:50 +0000)]
Add tested but unused code just in case it is useful at some point in
the future: a potentially more memcheck-friendly implementation of
count-leading-zeroes.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1339
Julian Seward [Sun, 14 Aug 2005 00:09:58 +0000 (00:09 +0000)]
dis_Grp2: decode address mode correctly
git-svn-id: svn://svn.valgrind.org/vex/trunk@1334
Julian Seward [Sat, 13 Aug 2005 23:58:34 +0000 (23:58 +0000)]
Handle Iop_Sar16, so that front end amd64 "cwtd" does not bomb.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1333
Julian Seward [Fri, 12 Aug 2005 23:51:31 +0000 (23:51 +0000)]
Implement 'rep ret'.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1332
Julian Seward [Fri, 12 Aug 2005 23:04:48 +0000 (23:04 +0000)]
Implement cmpxchg8b. Sheesh. What a total dog of an instruction.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1331
Julian Seward [Wed, 10 Aug 2005 12:27:46 +0000 (12:27 +0000)]
Implement PREFETCH{W} m8.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1324
Julian Seward [Wed, 10 Aug 2005 11:43:42 +0000 (11:43 +0000)]
Implement DC /3 (FCOMP double-real).
git-svn-id: svn://svn.valgrind.org/vex/trunk@1323
Julian Seward [Mon, 8 Aug 2005 09:58:05 +0000 (09:58 +0000)]
Reenable FST %st(0),%st(?) (0xDD 0xD0 .. 0xDD 0xD7).
git-svn-id: svn://svn.valgrind.org/vex/trunk@1322
Julian Seward [Mon, 8 Aug 2005 00:33:37 +0000 (00:33 +0000)]
Don't emit cmovl since older x86s don't support it; instead emit a
conditional jump over an unconditional move.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1321
Julian Seward [Sun, 7 Aug 2005 14:48:03 +0000 (14:48 +0000)]
A minimal implementation of the x86 sysenter instruction
(experimental). Limitations as commented in the code.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1320
Julian Seward [Sat, 6 Aug 2005 11:45:02 +0000 (11:45 +0000)]
Track the status of the %EFLAGS.AC (alignment check) bit, but
otherwise ignore it. This fixes a crash induced by incorrect CPU
identification.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1319
Julian Seward [Sat, 6 Aug 2005 10:04:12 +0000 (10:04 +0000)]
Reinstate SBB r/m, reg.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1318
Julian Seward [Fri, 5 Aug 2005 02:55:36 +0000 (02:55 +0000)]
Get rid of ludicrously over-paranoid assertion that caused all last
night's x86 regtests to fail.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1317
Julian Seward [Thu, 4 Aug 2005 18:32:19 +0000 (18:32 +0000)]
- Partial implementation of reservations, to make lwarx/stwcx. work
- Reenable some more integer insns
git-svn-id: svn://svn.valgrind.org/vex/trunk@1316
Julian Seward [Wed, 3 Aug 2005 16:07:36 +0000 (16:07 +0000)]
Implement dual licensing.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1313
Julian Seward [Wed, 3 Aug 2005 15:47:33 +0000 (15:47 +0000)]
Newer version of GPLv2 text with newer FSF addresses, no other changes.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1312
Julian Seward [Tue, 2 Aug 2005 21:27:25 +0000 (21:27 +0000)]
Implement 0xA0 /* MOV Ob,AL */ and 0xA2 /* MOV AL,Ob */.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1311
Julian Seward [Tue, 2 Aug 2005 21:20:36 +0000 (21:20 +0000)]
Ignore redundant REX.W prefix on CALL Ev.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1310
Julian Seward [Tue, 2 Aug 2005 11:14:04 +0000 (11:14 +0000)]
Make copyright notices consistent.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1309
Julian Seward [Mon, 1 Aug 2005 13:35:18 +0000 (13:35 +0000)]
Specialise NZ after DECW.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1308
Julian Seward [Mon, 1 Aug 2005 13:03:32 +0000 (13:03 +0000)]
Implement 0xA1 /* MOV Ov,eAX */ and 0xA3 /* MOV eAX,Ov */. This
should fix #109810.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1307
Julian Seward [Fri, 29 Jul 2005 21:58:51 +0000 (21:58 +0000)]
Reinstate some FP instructions. With --tool=none we now have a
successful run through gsl-1.6, which is great.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1306
Julian Seward [Fri, 29 Jul 2005 11:57:00 +0000 (11:57 +0000)]
Implement ffreep %st(0). Fixes #109718.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1305
Julian Seward [Fri, 29 Jul 2005 11:28:38 +0000 (11:28 +0000)]
Implement ficom{p,}{w,l}. This should fix #103594.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1304
Julian Seward [Wed, 27 Jul 2005 00:22:37 +0000 (00:22 +0000)]
Typechecker police.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1303
Julian Seward [Wed, 27 Jul 2005 00:22:15 +0000 (00:22 +0000)]
Get rid of warnings from gcc.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1302
Julian Seward [Tue, 26 Jul 2005 22:44:27 +0000 (22:44 +0000)]
Never ever delete vex_svnversion.h except when doing 'make version'.
Purpose is so that 'make distclean' or 'make clean' in a tarball'd
build do not delete it, and so do not render the tree unbuildable.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1301
Julian Seward [Tue, 26 Jul 2005 10:10:25 +0000 (10:10 +0000)]
Don't delete vex_svnversion.h during 'make clean'. This causes
breakage if someone builds from the final V tarball, then does 'make
clean', then re-runs make -- because creating this file requires (1)
svnversion to be present on the end-user system, which it probably
isn't, and (2) the metadata which svnversion consults also to be
present here, which it certainly isn't [in the cut-down VEX image in
the distro tarball.]
git-svn-id: svn://svn.valgrind.org/vex/trunk@1300
Julian Seward [Mon, 25 Jul 2005 11:58:34 +0000 (11:58 +0000)]
Implement a couple of missing x87 insns.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1299
Julian Seward [Sun, 24 Jul 2005 06:29:34 +0000 (06:29 +0000)]
Update always-defined areas.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1298
Julian Seward [Sun, 24 Jul 2005 06:29:00 +0000 (06:29 +0000)]
More isel cases.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1297
Julian Seward [Sat, 23 Jul 2005 20:34:51 +0000 (20:34 +0000)]
Some of the ppc32 front end stuff generates huge amounts of IR and
more space is needed.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1296
Julian Seward [Sat, 23 Jul 2005 17:37:03 +0000 (17:37 +0000)]
Reenable an ADC variant.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1295
Julian Seward [Sat, 23 Jul 2005 13:50:32 +0000 (13:50 +0000)]
Implement ADC Ib, AL.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1294
Julian Seward [Sat, 23 Jul 2005 13:28:05 +0000 (13:28 +0000)]
Enable RCR tests.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1293
Julian Seward [Sat, 23 Jul 2005 13:19:32 +0000 (13:19 +0000)]
An appallingly inefficient, but correct, implementation of rcr. On
x86, rcr is a dog. On amd64 it is a mangy dog with fleas on.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1292
Julian Seward [Sat, 23 Jul 2005 12:07:37 +0000 (12:07 +0000)]
Implement bswapq %reg. Generates pretty verbose code, but it works.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1291
Julian Seward [Fri, 22 Jul 2005 09:39:02 +0000 (09:39 +0000)]
Partially successful effort to get FP working again.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1290
Julian Seward [Fri, 22 Jul 2005 09:38:21 +0000 (09:38 +0000)]
Fix signedness of immediate.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1289
Julian Seward [Thu, 21 Jul 2005 21:33:57 +0000 (21:33 +0000)]
Reinstate rlwnm and change ROTL32 back to what it looked like before I
messed it up :-)
git-svn-id: svn://svn.valgrind.org/vex/trunk@1288
Julian Seward [Thu, 21 Jul 2005 17:07:18 +0000 (17:07 +0000)]
Fix XER.OV computation after multiply.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1287
Julian Seward [Thu, 21 Jul 2005 16:58:55 +0000 (16:58 +0000)]
Fix very stupid bug in my mtxer implementation. The relevant IRStmts
would work better (viz, at all :-) if they were added to the IR code
list after being created, instead of merely being dropped down the
back of the fridge.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1286
Julian Seward [Thu, 21 Jul 2005 14:48:31 +0000 (14:48 +0000)]
Do all ppc32 flag calculations in-line, partly for performance reasons
and partly to try and avoid confusing memcheck so much.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1285
Julian Seward [Thu, 21 Jul 2005 10:07:13 +0000 (10:07 +0000)]
Implement STC/CLC/CMC, and take the opportunity to make PUSHFL work a
bit more like how the hardware does.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1284
Julian Seward [Wed, 20 Jul 2005 10:55:26 +0000 (10:55 +0000)]
Implement SBB Ev,Gv.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1283
Julian Seward [Wed, 20 Jul 2005 10:15:34 +0000 (10:15 +0000)]
Implement LOOP disp8 (0xE2).
git-svn-id: svn://svn.valgrind.org/vex/trunk@1282
Julian Seward [Wed, 20 Jul 2005 09:23:13 +0000 (09:23 +0000)]
Implement F3 90 (rep nop).
git-svn-id: svn://svn.valgrind.org/vex/trunk@1281
Julian Seward [Wed, 20 Jul 2005 01:12:48 +0000 (01:12 +0000)]
Specialise NZ after ANDL/ORL/XORL. This fixes #109314.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1280
Julian Seward [Wed, 20 Jul 2005 00:30:37 +0000 (00:30 +0000)]
Add some specialisation rules which are ultimately helpful in reduce
memcheck's false-error rate on inlined strlen and related nasties.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1279
Julian Seward [Tue, 19 Jul 2005 23:59:54 +0000 (23:59 +0000)]
Make ADC Ev,Gv work.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1278
Julian Seward [Tue, 19 Jul 2005 08:42:56 +0000 (08:42 +0000)]
iselCondCode: handle literals.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1277
Julian Seward [Mon, 18 Jul 2005 13:58:49 +0000 (13:58 +0000)]
Add a folding rule for 1Sto16.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1276
Julian Seward [Mon, 18 Jul 2005 13:54:49 +0000 (13:54 +0000)]
Handle 0 :: Ity_I1 as well as 1 :: Ity_I1.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1275
Julian Seward [Mon, 18 Jul 2005 11:39:47 +0000 (11:39 +0000)]
Fix up linking/relocation a bit, and track API changes in r1272.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1274
Julian Seward [Mon, 18 Jul 2005 11:38:58 +0000 (11:38 +0000)]
Track API changes in r1272.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1273
Julian Seward [Mon, 18 Jul 2005 11:38:02 +0000 (11:38 +0000)]
Some changes to the ppc32 compilation pipeline, with two aims:
* to achieve code quality comparable with x86/amd64 pipelines
* to make the value flow clearer to memcheck, in the hope of
reducing the very high false error rate it gives on ppc
Code quality is substantially improved, but the error rate is just as
high as it was before. Needs investigation.
Many instructions are now commented out -- mostly they just need
commenting back in. Simple integer programs (date, ls, xfontsel)
work.
Front end changes
~~~~~~~~~~~~~~~~
Change the way CR and XER are represented, and hence redo the way
integer comparisons and conditional branches work:
* Introduce a two new IR primops CmpORD32S and CmpORD32U; these do
ppc-style 3-way comparisons (<, >, ==). It's hard to simulate ppc
efficiently without them. Use these to implement integer compares.
* Get rid of all thunks for condition codes -- CR and XER state
is always up to date now.
* Split XER into four fields and CR into 16 fields, so that
their various components can be accessed directly without
endless shifting and masking. Created suitable impedance
matching functions to read/write XER and CR as a whole.
* Use hardware BI numbering throughout.
Back end changes
~~~~~~~~~~~~~~~
* Simplify condition code handling and use hardware BI numbering
throughout
* Reduce the number of instruction kinds by merging integer subtracts
and shifts into PPC32Instr_Alu32. Use rlwimi to do Shl/Shr by
immediate.
* Create a copy of PPC32RI (reg-or-imm) called PPC32RH
(reg-or-halfword-imm), and give the latter a flag indicating whether
the imm is regarded as signed or not. Use PPC32RH in most places
where PPC32RI was used before.
* Add instruction selection functions to compute a value into a
PPC32RI, a PPC32RH of specified signedness, and a PPC32RH variant in
which the immediate is unsigned and in the range 1 .. 31 inclusive
(used for shifts-by-immediate).
* Simplify PPC32Instr_MulL; all 3 operands are now simply registers.
* Add a new (fake) insn PPC32Instr_LI32 to get arbitrary 32-bit
immediates into int registers; this hides all the ugly li vs lis/ori
details.
* Handle CmpORD32{S,U}.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1272
Julian Seward [Thu, 14 Jul 2005 07:00:06 +0000 (07:00 +0000)]
Fix build breakage.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1271
Julian Seward [Fri, 8 Jul 2005 21:55:22 +0000 (21:55 +0000)]
Implement 8-byte-transfer cases for lwsi and stswi.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1270
Cerion Armour-Brown [Fri, 8 Jul 2005 13:34:47 +0000 (13:34 +0000)]
Added LibVEX_GuestPPC32_put_cr7(), LibVEX_GuestPPC32_put_cr()
git-svn-id: svn://svn.valgrind.org/vex/trunk@1269
Cerion Armour-Brown [Fri, 8 Jul 2005 13:10:35 +0000 (13:10 +0000)]
Added LibVEX_GuestPPC32_get_cr() for easy access to entire cond reg
Filled in some missing defaults in LibVEX_GuestPPC32_initialise()
git-svn-id: svn://svn.valgrind.org/vex/trunk@1268
Julian Seward [Thu, 7 Jul 2005 14:15:35 +0000 (14:15 +0000)]
My life is one endless stream of small things which don't quite work.
This time it's gcc giving us an instruction with REX.W redundantly set
to 1.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1267
Julian Seward [Thu, 7 Jul 2005 13:52:03 +0000 (13:52 +0000)]
Comment-only-change: record subtle interactions between self-checks
and bb chasing.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1266
Julian Seward [Thu, 7 Jul 2005 13:12:04 +0000 (13:12 +0000)]
Fix bits and pieces needed to make self-checking-translations work
on amd64.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1265
Julian Seward [Thu, 7 Jul 2005 12:26:36 +0000 (12:26 +0000)]
Tidy up some loose ends in the self-checking-translations machinery,
and unroll the adler32 loop in a not-very-successful attempt to reduce
the overhead of checking.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1264
Julian Seward [Thu, 7 Jul 2005 09:56:24 +0000 (09:56 +0000)]
Make LibVEX_Translate (an API fn) take a Bool indicating whether or
not a self-checking translation has been requested.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1263
Julian Seward [Thu, 7 Jul 2005 01:32:16 +0000 (01:32 +0000)]
Basic support for self-checking translations. It fits quite neatly
into the IR: if a translation self-check fails, the translation exits
passing VEX_TRC_JMP_TINVAL to the despatcher and with the
guest_TISTART/guest_TILEN pseudo-registers indicating what area of the
guest code needs to be invalidated. The actual checksumming is done
by a helper function which does (a variant of) the Adler32 checksum.
Space/time overhead, whilst substantial, looks tolerable. There's a
little room for optimisation of the basic scheme. It would certainly
be viable to run with self-checking for all translations to support
Valgrinding JITs (including V itself) without any assistance from the
JIT.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1262
Julian Seward [Tue, 5 Jul 2005 23:54:16 +0000 (23:54 +0000)]
Keep older versions of gcc (3.0.4) happy.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1261
Cerion Armour-Brown [Mon, 4 Jul 2005 12:16:56 +0000 (12:16 +0000)]
... and fix the fix (oh for clear documentation...)
git-svn-id: svn://svn.valgrind.org/vex/trunk@1260
Cerion Armour-Brown [Mon, 4 Jul 2005 11:56:13 +0000 (11:56 +0000)]
fixed load-mult-word bad-insn-check bug
git-svn-id: svn://svn.valgrind.org/vex/trunk@1259
Cerion Armour-Brown [Mon, 4 Jul 2005 11:47:44 +0000 (11:47 +0000)]
What is it with me add and's!
git-svn-id: svn://svn.valgrind.org/vex/trunk@1258
Cerion Armour-Brown [Mon, 4 Jul 2005 11:11:59 +0000 (11:11 +0000)]
Bringing back load/store multiple word. *These insns not yet checked*
git-svn-id: svn://svn.valgrind.org/vex/trunk@1257
Julian Seward [Mon, 4 Jul 2005 10:26:32 +0000 (10:26 +0000)]
Implement fcmovu/fcmovnu. gcc-4.0.1 -msse2 -ftree-vectorize generates them.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1256