Commit Graph

260 Commits

Author SHA1 Message Date
Ben Vanik cb352c6c86 Fancy templated helpers. 2014-01-26 03:17:03 -08:00
Ben Vanik ecf0988ddb Removing SET_RETURN_ADDRESS - hopefully it'll never be needed again. 2014-01-26 01:18:59 -08:00
Ben Vanik 8789fd4134 Heuristically detecting ret - probably breaks some things. 2014-01-26 01:09:25 -08:00
Ben Vanik c74f35552a (air quotes) "register allocation" without spills. 2014-01-25 23:36:59 -08:00
Ben Vanik c4d6c7a526 Reducing value count. IVM could take advantage of this. 2014-01-25 22:47:21 -08:00
Ben Vanik 05432242ff Removing block continuation branches. 2014-01-25 21:35:59 -08:00
Ben Vanik f438fa980d Fixing source offsets. 2014-01-25 21:32:30 -08:00
Ben Vanik 0cca23cdd7 Source map in DebugInfo. IVM needs to port its stuff over eventually. 2014-01-25 21:20:28 -08:00
Ben Vanik 4609339c5a JIT hackery. Not quite working. 2014-01-25 20:30:41 -08:00
Ben Vanik bbe50cfe26 Disabling x64 backend. 2014-01-24 23:34:18 -08:00
Ben Vanik 8ae6053d0f Deleting LIR and such, wiring up for HIR->x64. 2014-01-24 22:26:15 -08:00
gibbed 7dc8a5931f Quick hack fix for vsldoi128. 2014-01-24 10:01:45 -08:00
gibbed c6642331fa Small cleanup. 2014-01-24 03:42:07 -08:00
gibbed 1ac84cf255 VECB16, VECS8, VECI4, VECF4 macros. 2014-01-24 03:39:10 -08:00
gibbed 855173b2bd Probably broke everything. 2014-01-24 00:00:20 -08:00
Ben Vanik 53b9ed5214 Simplifying disassembler. Much faster than before. 2014-01-23 20:31:27 -08:00
Ben Vanik f36e6cd820 Removing JSON dumps. 2014-01-23 20:31:26 -08:00
Ben Vanik f93a21884c Moving descriptions to instr table, part of issue #51. 2014-01-23 20:31:26 -08:00
gibbed 16918eea07 Disabled source offset tracking by default. 2014-01-20 08:18:49 -08:00
Ben Vanik f75517f7f8 Fixing add 32 w/ saturate. 2014-01-19 00:53:22 -08:00
Ben Vanik af4e107905 Experimenting with instrument API. Not quite right. 2014-01-16 23:27:11 -08:00
Ben Vanik 991e7d8ad3 Refactoring window stuff. Still needs some work. 2014-01-14 22:40:02 -08:00
Ben Vanik 9a09c2072e Fixing badness in release mode. 2014-01-14 18:28:40 -08:00
Ben Vanik a02f5c3e7a Fixing alloy analysis warnings. 2014-01-14 01:11:42 -08:00
Ben Vanik 50587974b5 Not sure why I thought I could do this. 2014-01-14 00:39:31 -08:00
Ben Vanik 81226db1b4 Fixing broken instruction decoding. 2014-01-13 23:24:28 -08:00
Ben Vanik 857ce4a2e2 Crazy working permute by Rick. 2014-01-13 22:37:07 -08:00
Ben Vanik dcc0e55a90 Fixing the unpacks. 2014-01-13 22:37:07 -08:00
Ben Vanik f82eccdc7c Hacking in vupkhsh/etc. The instruction tables need a rewrite. Yuck. 2014-01-13 22:37:06 -08:00
Ben Vanik faa75c9407 Making debug info toggles a flag to allow finer control. 2014-01-13 21:12:10 -08:00
Ben Vanik dfaa0e2d08 Disabling mangled name extraction. 2014-01-13 20:51:35 -08:00
gibbed 4e9d3a00e4 Fixed constant values not being cloned correctly. 2014-01-12 22:06:10 -08:00
gibbed dde2b1ff41 I totally did not violate coding conventions in the last commit. 2014-01-12 20:27:12 -08:00
gibbed 65d5d1d559 Added tracking of source address for an easier time while debugging. 2014-01-12 20:22:43 -08:00
Ben Vanik 2ed1dd452c Removing unused externs. 2014-01-12 20:08:50 -08:00
Ben Vanik 984d63a3d4 Removing redundant math. 2014-01-12 19:30:52 -08:00
Ben Vanik 5c755f09f0 Fixing addresses, perhaps. 2014-01-12 19:21:40 -08:00
Ben Vanik 413aa06605 vupkh|lsh 2014-01-12 18:04:24 -08:00
Ben Vanik 4cbee4620a Fixing branch CTR compare. Maybe. 2014-01-12 17:19:37 -08:00
Ben Vanik f6866098c5 Probably correct vupkh|lsb. 2014-01-12 15:41:18 -08:00
Ben Vanik eb5d7e0f31 Comments. 2014-01-12 14:43:59 -08:00
Ben Vanik 6129e1eb7a Simplifying macros to fix VS' broken preprocessor. 2014-01-12 14:06:00 -08:00
Ben Vanik 8085678f5a PACK/UNPACK. 2014-01-10 00:28:52 -08:00
Ben Vanik 3fbebcfa08 VectorAdd and saturation checks. 2014-01-09 21:57:07 -08:00
Ben Vanik 2980a30f30 vctsxs, vctuxs. 2014-01-09 21:20:03 -08:00
Ben Vanik 478781e0dc Various rounding instructions. 2014-01-09 20:44:23 -08:00
Ben Vanik 35ef6df1fc sradx, vcfsx, vcfux. 2014-01-09 20:28:26 -08:00
Ben Vanik 036d12581e VECTOR_SHR/_SHA. Fixing some disasm stuff. 2014-01-08 22:15:00 -08:00
Ben Vanik e7a31c78bf Simplifying byteswap(byteswap(a)) to a. 2014-01-08 18:47:39 -08:00
Ben Vanik 3dff790ce6 Fixing broken VX128_5 decoding. 2014-01-08 01:10:44 -08:00
Ben Vanik 894f22cd0b Oh FFS. LOAD_CLOCK. 2014-01-08 00:12:22 -08:00
Ben Vanik 698eaeeb88 Custom stack for IVM. 2-3x faster. 2014-01-06 23:11:10 -08:00
Ben Vanik 2ed6f478c1 Adding --always_disasm. 2014-01-06 22:51:06 -08:00
Ben Vanik ff66064275 Making --debug = false work. 2014-01-06 22:46:21 -08:00
Ben Vanik d1528e24bb Removing REM, adding MUL_HI, renaming MULADD/MULSUB. 2014-01-06 22:17:49 -08:00
Ben Vanik 3dcbcce38d POW2/LOG2 for vexptefp/vlogefp. 2014-01-06 18:13:16 -08:00
Ben Vanik 56476d276d Constant vec128 swap. 2014-01-05 16:22:41 -08:00
Ben Vanik a78447f015 Broken and. 2014-01-05 16:22:32 -08:00
Ben Vanik e8ca05ca0a MmQueryAllocationSize. 2014-01-05 11:19:02 -08:00
Ben Vanik 81c59c7912 Sign extend constant handling. 2014-01-05 02:24:16 -08:00
Ben Vanik 16d93c5fb3 nandx. 2014-01-05 01:51:38 -08:00
Ben Vanik c857d8da35 intcode SQRT. 2014-01-04 23:58:25 -08:00
Ben Vanik f23c330353 vrefp. 2014-01-04 15:44:56 -08:00
Ben Vanik d2336774de MIN/MAX intcode. 2014-01-04 15:44:14 -08:00
Ben Vanik 00d878c62a Fixing arena chunk reuse. 2014-01-04 14:34:49 -08:00
Ben Vanik 615229bd87 Minor fixes and debug helpers to track externs. 2014-01-04 13:20:19 -08:00
Ben Vanik e362a65189 Simplification pass handles redundant truncate/extend & extend/truncate. 2014-01-04 11:56:32 -08:00
Ben Vanik 4db1b13e98 DCE pass removes assigns. 2014-01-04 11:56:05 -08:00
Ben Vanik a8eff63dbc Adding skeleton for reg allocator. 2014-01-04 02:57:53 -08:00
Ben Vanik 93ea56179a Moving LoadAcquire/StoreRelease behavior up into HIR. 2014-01-04 00:50:48 -08:00
Ben Vanik 88b631b160 Emitting more x64. 2014-01-04 00:30:43 -08:00
Ben Vanik 2468645bf2 Making functions naked for now, as it makes life way easier. 2014-01-02 23:53:18 -08:00
Ben Vanik 99c200fda5 Fixing warning. 2014-01-02 23:39:53 -08:00
Ben Vanik 73d934b37b Emitting functions and SEH info for call stacks. 2014-01-02 23:11:16 -08:00
Ben Vanik 9ef2d1baf6 Calling generated code. Woo. 2014-01-02 20:56:21 -08:00
Ben Vanik e14d3379cb Hooking up code emission. 2014-01-02 20:41:13 -08:00
Ben Vanik 125e7278c6 Ugh. Replacing the fancy templates with hand coded sequences for now. 2014-01-02 00:00:14 -08:00
Ben Vanik 3e4f93a6a9 Playing with sequences. 2013-12-30 00:11:36 -08:00
Ben Vanik 08cff81f6a HIR->LIR flow. 2013-12-29 23:51:51 -08:00
Ben Vanik cd9172ed62 Resetting the builder arena. May be a bug or two here still. 2013-12-29 23:43:36 -08:00
Ben Vanik 63f11732a5 Wiring up the LIR flow. 2013-12-29 22:05:41 -08:00
Ben Vanik dec0e35957 More X64 backend skeleton work. 2013-12-29 19:54:17 -08:00
Ben Vanik 3d01efffac LIR skeleton, renaming some types to prevent conflict. 2013-12-29 14:28:46 -08:00
Ben Vanik 6b17ead43b Minor tweaks. 2013-12-28 19:48:02 -08:00
Ben Vanik f6f8be9080 Implementing ROUND. 2013-12-28 08:49:05 -08:00
Ben Vanik 5a6184c07a Fixing vsldoi. I'll likely need to reverse all of these back later. 2013-12-28 08:42:38 -08:00
Ben Vanik 5bc74313e3 Fixing broken instruction offsets on block splits. 2013-12-27 15:00:34 -08:00
Ben Vanik 402c96f9a6 Fixing block split ordering, issue #48. 2013-12-27 08:38:59 -08:00
Ben Vanik 7002a3bd57 Adding implicit branches to ensure flow control remains legit. 2013-12-26 19:00:52 -08:00
Ben Vanik e8cafa21b9 Dumping symbol names. 2013-12-25 23:21:35 -08:00
Ben Vanik 3db93f781c Fixing div. 2013-12-25 23:16:27 -08:00
Ben Vanik 8e3ca029c2 Heap allocating large register files. 2013-12-25 23:16:16 -08:00
Ben Vanik 1b533d8c2b Fix for accidentally including rest fns as branches. 2013-12-25 23:15:57 -08:00
Ben Vanik 60cc910d19 Fixing uninitialized variable, via jdarpinian. 2013-12-25 22:16:50 -08:00
Ben Vanik 76be00dfdf Fiddling. 2013-12-25 21:58:40 -08:00
Ben Vanik e07ced0f00 Making address calculation shared and (maybe) fixing it. 2013-12-25 21:33:15 -08:00
Ben Vanik abc5aac7ee Removing unused code, via jdarpinian. 2013-12-25 20:57:07 -08:00
Ben Vanik 85dec3bf44 Fixing unused member and duplicate member. 2013-12-25 20:43:23 -08:00
Ben Vanik ae3a042f8a Fixing broken vector compare. 2013-12-25 20:38:27 -08:00
Ben Vanik a1da55a006 Threads displayed. 2013-12-25 17:31:53 -08:00
Ben Vanik d368e0cb74 Caching function list and only sending deltas. 2013-12-25 07:00:42 -08:00
Ben Vanik 062610c596 Fixing various bugs. 2013-12-24 23:29:40 -08:00
Ben Vanik 98efc7ddfa Suspend/resume working. 2013-12-23 19:46:35 -08:00
Ben Vanik 475ddc1fcf Breakpoint hits reaching all the way to UI.
Nasty json only hackery right now, but fixable to support other protocols.
2013-12-23 14:01:13 -08:00
Ben Vanik a0256fac45 Removing empty files to shut VS up. 2013-12-23 11:52:51 -08:00
Ben Vanik 31b8c02cbf Breakpoints triggering. 2013-12-22 23:04:24 -08:00
Ben Vanik 5881a58c49 More plumbing for breakpoints. 2013-12-22 22:03:06 -08:00
Ben Vanik 5e9a2c6d27 Client-specific debug state. 2013-12-22 19:58:00 -08:00
Ben Vanik 7098ed3b02 Plumbing breakpoints down into alloy Debugger interface. 2013-12-22 17:50:14 -08:00
Ben Vanik 9208132ad9 Load map files and set function names. 2013-12-22 14:04:41 -08:00
Ben Vanik d861ef8aab Prettier ppc disasm. 2013-12-22 13:06:15 -08:00
Ben Vanik de6dc92663 Only generate debug info when in --debug mode (or asked). 2013-12-22 09:50:31 -08:00
Ben Vanik c92142ca02 Displaying (unformatted) function code. 2013-12-22 09:25:44 -08:00
Ben Vanik 4ecdfed46f Function listing and selection. 2013-12-22 02:59:42 -08:00
Ben Vanik 2cb5c97052 GDB debug protocol that IDA can connect to.
Unfortunately, IDA sucks, and this likely won't ever work right.
2013-12-17 10:20:07 -08:00
Ben Vanik f2348301ea More aggressive constant propagation pass. 2013-12-15 14:40:18 -08:00
Ben Vanik 769b8d59d9 Fixing some constant checks. 2013-12-15 14:34:57 -08:00
Ben Vanik 84651623a5 Removing BranchIf. 2013-12-15 14:34:41 -08:00
Ben Vanik 417a970aab Various fixes. 2013-12-15 13:58:40 -08:00
Ben Vanik 1d0ed4882d Constant type fixes. 2013-12-15 12:09:28 -08:00
Ben Vanik 88cdb9e36c Replacing store vector left/right opcodes by just using permutes. 2013-12-15 11:58:54 -08:00
Ben Vanik a44551c418 Fixing some copy/paste errors. Sigh. 2013-12-14 15:47:45 -08:00
Ben Vanik 52ff9bdfd0 Fixing swizzle. 2013-12-14 15:47:32 -08:00
Ben Vanik 1fb8650f6d Fixing I2F. 2013-12-14 14:41:45 -08:00
Ben Vanik 8af24ab9bb Fixing vrlimi128 2013-12-14 09:27:34 -08:00
Ben Vanik c9adf893a6 Fixing a bunch of vector ops. 2013-12-14 08:47:36 -08:00
Ben Vanik 7ebdd3f7e0 Fixing vectors. 2013-12-14 07:17:33 -08:00
Ben Vanik 21d1e7236b Fixing permute functions. 2013-12-14 06:24:29 -08:00
Ben Vanik a1f41c656a stve*x 2013-12-13 22:24:19 -08:00
Ben Vanik d1210218ac Comment fixes. 2013-12-13 21:20:01 -08:00
Ben Vanik 69704853a3 Special casing sldi. 2013-12-13 20:11:04 -08:00
Ben Vanik 24ce893256 Fixing ROTL macro. 2013-12-13 20:10:56 -08:00
Ben Vanik 689de0279f Swapping bytes. Probably still wrong. 2013-12-08 23:33:40 -08:00
Ben Vanik eb2d596c27 srawx, vsldoi, vupkd3d of D3DCOLOR -- all untested 2013-12-08 23:15:05 -08:00
Ben Vanik 3ec930d9fc INSERT 2013-12-08 23:14:27 -08:00
Ben Vanik ccd5346332 LOAD/STORE_VECTOR_LEFT/RIGHT. It'd be nice not to have these. 2013-12-08 22:16:37 -08:00
Ben Vanik b9df6dc703 load_vector_sh* 2013-12-08 20:58:24 -08:00
Ben Vanik 07b5c3ad81 Adding f64-to-i32 convert. 2013-12-08 20:42:33 -08:00
Ben Vanik 24a13b4021 Fixing carry. 2013-12-08 20:42:20 -08:00
Ben Vanik 2e5489e22f Making the trace format easier to diff with the old stuff. 2013-12-08 20:42:12 -08:00
Ben Vanik 65a36fd69c Fixing CNTLZ. 2013-12-08 16:01:11 -08:00
Ben Vanik 60015afdc4 Misc fixes. 2013-12-08 16:00:55 -08:00
Ben Vanik 7c4b2c6d23 sradi, which was totally wrong before o_o 2013-12-08 15:24:18 -08:00
Ben Vanik 7adc122620 No-op MSR instructions. 2013-12-08 14:31:19 -08:00
Ben Vanik 760d82a9af Fixing endianess of register load/store. 2013-12-08 14:31:03 -08:00
Ben Vanik ec4bf50363 load_acquire/store_release 2013-12-08 14:15:28 -08:00
Ben Vanik 2549292a57 Return address handling. Not happy with the design, but it (sorta) works. 2013-12-08 13:58:57 -08:00
Ben Vanik dc0848f7ba rld* 2013-12-08 13:58:15 -08:00
Ben Vanik 28ff739449 Better nop handling. 2013-12-08 13:17:50 -08:00
Ben Vanik 50f53a483e How did this ever work? Fixing and*. 2013-12-08 12:25:48 -08:00