mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-14 14:24:05 +00:00
New entries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31976 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -730,3 +730,23 @@ to avoid the copy. In fact, the existing two-address stuff would do this
|
|||||||
except that mul isn't a commutative 2-addr instruction. I guess this has
|
except that mul isn't a commutative 2-addr instruction. I guess this has
|
||||||
to be done at isel time based on the #uses to mul?
|
to be done at isel time based on the #uses to mul?
|
||||||
|
|
||||||
|
//===---------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
Make sure the instruction which starts a loop does not cross a cacheline
|
||||||
|
boundary. This requires knowning the exact length of each machine instruction.
|
||||||
|
That is somewhat complicated, but doable. Example 256.bzip2:
|
||||||
|
|
||||||
|
In the new trace, the hot loop has an instruction which crosses a cacheline
|
||||||
|
boundary. In addition to potential cache misses, this can't help decoding as I
|
||||||
|
imagine there has to be some kind of complicated decoder reset and realignment
|
||||||
|
to grab the bytes from the next cacheline.
|
||||||
|
|
||||||
|
532 532 0x3cfc movb (1809(%esp, %esi), %bl <<<--- spans 2 64 byte lines
|
||||||
|
942 942 0x3d03 movl %dh, (1809(%esp, %esi)
|
||||||
|
937 937 0x3d0a incl %esi
|
||||||
|
3 3 0x3d0b cmpb %bl, %dl
|
||||||
|
27 27 0x3d0d jnz 0x000062db <main+11707>
|
||||||
|
|
||||||
|
//===---------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
In c99 mode, the preprocessor doesn't like assembly comments like #TRUNCATE.
|
||||||
|
Reference in New Issue
Block a user