Commit Graph
9 Commits
Author SHA1 Message Date
7639bb2e86 Fold ConvertI64ToI32 imm64 (#1359)
* Fold ConvertI64ToI32 imm64

* Increment PTC version

* Bump PPTC InternalVersion

Co-authored-by: jduncanator <1518948+jduncanator@users.noreply.github.com>
2020-07-11 10:35:38 +10:00
Ficture SevenandGitHub 2421186d97 Generalize tail continues (#1298)
* Generalize tail continues

* Fix DecodeBasicBlock

`Next` and `Branch` would be null, which is not the state expected by
the branch instructions. They end up branching or falling into a block
which is never populated by the `Translator`. This causes an assert to
be fired when building the CFG.

* Clean up Decode overloads

* Do not synchronize when branching into exit block

If we're branching into an exit block, that exit block will tail
continue into another translation which already has a synchronization.

* Remove A32 predicate tail continue

If `block` is not an exit block then the `block.Next` must exist (as
per the last instruction of `block`).

* Throw if decoded 0 blocks

Address gdkchan's feedback

* Rebuild block list instead of setting to null

Address gdkchan's feedback
2020-06-18 13:37:21 +10:00
Ficture SevenandGitHub 430a48338b Fix RET Xn translation (#1242) 2020-05-14 14:50:35 +10:00
Ficture SevenandGitHub 4b79b78b8c Fix tailcall case in EmitterContext (#1235) 2020-05-11 10:04:52 +10:00
Ficture SevenandGitHub 180ad8605d Improve IRDumper (#1135)
* Improve IRDumper

* Make Symbols.Add(ulong, ulong, ulong, string) thread safe

* Use a StringBuilder for MemoryOperand

* Add #if M_DEBUG guards

* Fix JMP_TABLE typo

* Fix using in Symbols

* Use Conditional("M_DEBUG") instead

Address gdkchan's feedback

* Use a struct instead of 4-tuple

Address gdkchan's feedback

* Place symbols in comments instead

Address gdkchan's feedback

* Use StringBuilder throughout

* Handle offsetted symbols

* Fix naming convention of Builder

* Avoid ArgumentException

* Remove unnecessary using

* Use switch expression instead

* Turn into a class

* Clean up

* Remove unnecessary using
2020-05-04 12:06:22 +10:00
Ficture SevenandGitHub 71dbb38b9a Do not compute dominance information when not in SSA (#1176) 2020-05-01 23:15:55 +02:00
Ficture SevenandGitHub ca8745fc8e Avoid temporaries when pre-allocating Store %x, imm8/16/32 (#1123) 2020-04-20 22:40:13 +10:00
Ficture SevenandGitHub e4ee61d6c3 Improve V128 (#1097)
* Improve V128

* Use LayoutKind.Sequential instead

* Add As<T>, Get<T> & Set<T>

* Fix CpuTest

* Rename Get<T> & Set<T> to Extract<T> & Insert<T>

* Add XML documentation

* Nit
2020-04-17 08:19:20 +10:00
Ficture SevenandGitHub 496db602ff Optimize %x ^ %x = 0 (#1094)
* JIT: Optimize %x ^ %x = 0

* Address feedback

* Fix typo
2020-04-09 09:36:19 +10:00