Commit Graph

1051 Commits

Author SHA1 Message Date
Cerion Armour-Brown
f8daaea1ec Use ULong instead of Int for stopAfter and n_bbs_done - shouldn't run out of bbs for a while now...
git-svn-id: svn://svn.valgrind.org/vex/trunk@1051
2005-03-17 13:11:06 +00:00
Cerion Armour-Brown
dc40e0565c handy test wrapper
git-svn-id: svn://svn.valgrind.org/vex/trunk@1050
2005-03-17 13:01:08 +00:00
Cerion Armour-Brown
d250492e91 stop compiler errors on fp regs, add possibily of setting xer_ca, clearly choose what tests to run
git-svn-id: svn://svn.valgrind.org/vex/trunk@1049
2005-03-17 13:00:11 +00:00
Julian Seward
f91789161d Print IMarks a bit more visibly.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1048
2005-03-17 09:57:03 +00:00
Julian Seward
2a1bd2eddd We no longer need a complete spare copy of V hanging off the Vex tree.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1047
2005-03-16 20:54:10 +00:00
Julian Seward
be1682ca4d Add a new kind of IR stmt: "instruction marks" (IRStmt_IMark), so as
to support profiling.  It is the responsibility of front ends (toIR.c)
to generate these.  For each instruction, the first IR stmt emitted
should be an IMark, stating the guest address and length of the guest
instruction represented by the IR that follows.  All IR stmts
following the IMark but before the next IMark are then assumed to
'belong to' the guest insn described by the first IMark.  IMarks do
not denote executable code and can be ignored at any point in the
proceedings; they are an optional addition which help
profiling-annotators to navigate the IR stmt stream.

This commit adds IR level infrastructure for IMarks and IMark
generation in the x86 front end.  The amd64 and ppc32 front end are
not yet done.



git-svn-id: svn://svn.valgrind.org/vex/trunk@1046
2005-03-16 18:19:10 +00:00
Julian Seward
5c88820bf5 Revert to doing x86->x86 (utterly trivial change)
git-svn-id: svn://svn.valgrind.org/vex/trunk@1045
2005-03-16 18:10:45 +00:00
Cerion Armour-Brown
1453b1b1f0 Fixed front-end srawi carry flag calc
git-svn-id: svn://svn.valgrind.org/vex/trunk@1044
2005-03-16 14:12:58 +00:00
Julian Seward
23d716110b Add guest_TISTART and guest_TILEN fields to all guest state structs,
since eventually users of the library will refer to them, and unless
they exist in all guest states, compilation failure will result.

These fields contain the size and length of an area of icache
invalidated by any icache-flushing instruction encountered.  On x86
and amd64 there is no such insn and so they are zeroed at startup and
play no further role at all.  But on ppc32 they are written to as a
result of executing an 'icbi' instruction.



git-svn-id: svn://svn.valgrind.org/vex/trunk@1043
2005-03-16 13:57:58 +00:00
Julian Seward
f7a3fb1d87 Add %EBP/%RBP to the set of registers for which redundant-PUT
elimination is not done.  This is needed so that Valgrind can
construct correct stack traces on x86/amd64.  Curiously enough old
UCode valgrind didn't do this correctly, but because it doesn't
optimise as aggressively as Vex, we didn't notice this.  Overall
result is that Vex-based valgrind now produces more accurate stack
traces, at least on x86, than valgrind-2.4.X will.



git-svn-id: svn://svn.valgrind.org/vex/trunk@1042
2005-03-16 11:52:25 +00:00
Cerion Armour-Brown
695e1e3aea small fix to rlwnm_cb loop
git-svn-id: svn://svn.valgrind.org/vex/trunk@1041
2005-03-16 11:51:03 +00:00
Cerion Armour-Brown
0d05c6da2d Fixed xer_ca flag calc for subfze,
Cleaned up ghelpers.c: calc_xer_ca, calc_xer_ov
Cleaned up toIR.c dis_int_arith, dis_int_cmp, dis_int_logic, dis_int_shift




git-svn-id: svn://svn.valgrind.org/vex/trunk@1040
2005-03-16 00:27:37 +00:00
Julian Seward
269f36434b Be a bit more paranoid about icbi.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1039
2005-03-15 18:27:40 +00:00
Julian Seward
59d98eae94 Improved method for discarding invalidated translations.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1038
2005-03-15 17:49:46 +00:00
Julian Seward
fd8e23dc66 Support for vex-directed instruction-cache invalidation, needed for
PowerPC icbi instruction support.


git-svn-id: svn://svn.valgrind.org/vex/trunk@1037
2005-03-15 16:54:13 +00:00
Julian Seward
c263e72fec Brain-dead (but working) support for Vex-directed translation-cache
invalidates.



git-svn-id: svn://svn.valgrind.org/vex/trunk@1036
2005-03-15 16:52:13 +00:00
Julian Seward
1bc1a47a02 Somewhat reduce the number of immediate values in test-with-immediate
style tests.


git-svn-id: svn://svn.valgrind.org/vex/trunk@1035
2005-03-15 16:51:30 +00:00
Cerion Armour-Brown
12cea1fc44 Fix backend cntlzw
git-svn-id: svn://svn.valgrind.org/vex/trunk@1034
2005-03-15 16:36:02 +00:00
Cerion Armour-Brown
b46eb02865 Cleanup backend: var name chages like src1,2 -> srcL,R etc
git-svn-id: svn://svn.valgrind.org/vex/trunk@1033
2005-03-15 16:33:38 +00:00
Julian Seward
32e0d3779a Build fixes for gcc-2.96 (be more ANSI C compliant wrt placement
of local variable declarations).


git-svn-id: svn://svn.valgrind.org/vex/trunk@1032
2005-03-14 18:19:08 +00:00
Cerion Armour-Brown
307a405edd Fixed ghelper mullwo overflow calc
git-svn-id: svn://svn.valgrind.org/vex/trunk@1031
2005-03-14 16:31:15 +00:00
Cerion Armour-Brown
0b4576207a Fixed front-end slw for sh_amt of 32 to 64
git-svn-id: svn://svn.valgrind.org/vex/trunk@1030
2005-03-14 16:30:09 +00:00
Julian Seward
d663c941cb Fill in missing memory case for pinsrw.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1029
2005-03-13 20:19:19 +00:00
Julian Seward
db03e5da6c The IR sanity checker quite rightly jumps up and down on the ill-typed
IR that this can generate.  Get it right this time.


git-svn-id: svn://svn.valgrind.org/vex/trunk@1028
2005-03-13 19:52:45 +00:00
Julian Seward
2a3b990ef7 Reenable mov imm,$reg. Curious this never happened before.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1027
2005-03-13 19:31:58 +00:00
Julian Seward
35f7b73bb2 So what if we are ignoring a branch hint? No need to shout about it.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1026
2005-03-13 18:56:28 +00:00
Julian Seward
da1f81d30c Deal with Group 8 immediates (bt, btl, btr, btc).
git-svn-id: svn://svn.valgrind.org/vex/trunk@1025
2005-03-13 17:25:53 +00:00
Julian Seward
6bed55781f Deal better with x86 'rep nop' (P4 pause hint).
git-svn-id: svn://svn.valgrind.org/vex/trunk@1024
2005-03-12 16:47:18 +00:00
Julian Seward
fdc71642ed Reenable cmpsw/cmpsl.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1023
2005-03-11 14:00:27 +00:00
Julian Seward
47a278b4b7 Make suitable for initial test run.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1022
2005-03-11 12:04:29 +00:00
Cerion Armour-Brown
3f22a569aa Fixed front-end xer reg access
git-svn-id: svn://svn.valgrind.org/vex/trunk@1021
2005-03-11 09:12:11 +00:00
Julian Seward
6eaa1e1a80 Change license on switchback/test_ppc_jm1.c as per Jocelyn's
instructions.



git-svn-id: svn://svn.valgrind.org/vex/trunk@1020
2005-03-10 23:13:15 +00:00
Julian Seward
70ba85347a rm QEMU references; the derivation is now so distant its barely
relevant.


git-svn-id: svn://svn.valgrind.org/vex/trunk@1019
2005-03-10 19:40:41 +00:00
Julian Seward
0411d94b86 Apparently we're a .net, not merely a .co.uk.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1018
2005-03-10 19:33:19 +00:00
Julian Seward
cc23b8fce2 Fix typo
git-svn-id: svn://svn.valgrind.org/vex/trunk@1017
2005-03-10 19:09:02 +00:00
Julian Seward
f9cbaa46bf Statement about copyright.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1016
2005-03-10 18:55:58 +00:00
Julian Seward
2aecf5be2e Add a copy of GNU GPL v2.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1015
2005-03-10 18:55:27 +00:00
Julian Seward
9ad16cd45e Clean up for public availability.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1014
2005-03-10 18:28:08 +00:00
Cerion Armour-Brown
0309f8242c Added test_ppc to Makefile
git-svn-id: svn://svn.valgrind.org/vex/trunk@1013
2005-03-10 15:53:11 +00:00
Julian Seward
27bf67a72a Another test commit
git-svn-id: svn://svn.valgrind.org/vex/trunk@1012
2005-03-10 15:03:52 +00:00
Julian Seward
6454416820 A second test commit.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1011
2005-03-10 13:54:15 +00:00
Julian Seward
acc56a9180 Remove something old (really, a test commit for the new repo location)
git-svn-id: svn://svn.valgrind.org/vex/trunk@1010
2005-03-10 13:27:14 +00:00
Julian Seward
284dee213a Jocelyn Mayer's fabulous ppc test program.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1009
2005-03-09 13:13:30 +00:00
Julian Seward
b4bb5d005d As part of the build process, generate pub/libvex_guest_offsets.h holding
guest state offsets.


git-svn-id: svn://svn.valgrind.org/vex/trunk@1008
2005-03-08 16:43:27 +00:00
Julian Seward
59bd4c4ed9 A place to put auxiliary programs used as part of the build process.
git-svn-id: svn://svn.valgrind.org/vex/trunk@1007
2005-03-08 16:34:09 +00:00
Cerion Armour-Brown
c8e95f2908 Cleaned up front end a fair bit.
Consolidated spr (non-gpr/fpr) register interface
Brought together separate guest XER flags to single word
 + fixed up switchback (latter slighly broken since r1002)
Few more comments, vasserts etc.
Updated page refs to PPC32 docs



git-svn-id: svn://svn.valgrind.org/vex/trunk@1006
2005-03-04 17:35:29 +00:00
Cerion Armour-Brown
bcc594927e fix cmd call of switchback, and deal with return err 256
git-svn-id: svn://svn.valgrind.org/vex/trunk@1005
2005-03-04 14:20:14 +00:00
Julian Seward
447411a551 A couple more flags-specialisation cases, derived from profiling FP
code.



git-svn-id: svn://svn.valgrind.org/vex/trunk@1004
2005-03-04 13:51:28 +00:00
Julian Seward
a3cfde5d22 guest state padding wibble
git-svn-id: svn://svn.valgrind.org/vex/trunk@1003
2005-03-04 13:50:53 +00:00
Cerion Armour-Brown
022ec327f9 Cleaning up frontend
- inc. changing all guest-state UChars to UInts



git-svn-id: svn://svn.valgrind.org/vex/trunk@1002
2005-03-03 17:36:23 +00:00