Added function to set a register to a particular value + tests.
Add EFLAGS test, use new setRegTo instead of setRegToConstant.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
tools/llvm-exegesis/lib/Assembler.cpp | ||
---|---|---|
173 ↗ | (On Diff #164660) | let's keep this code factored out in generateSnippetSetupCode(). |
tools/llvm-exegesis/lib/BenchmarkRunner.h | ||
46 ↗ | (On Diff #164660) | you can kill that now. |
47 ↗ | (On Diff #164660) | where are you setting these ? |
tools/llvm-exegesis/lib/RegisterValue.h | ||
1 ↗ | (On Diff #164660) | Can you please split this to a different patch ? |
tools/llvm-exegesis/lib/Target.h | ||
38 ↗ | (On Diff #164660) | Please comment what happens when the register bit width is not the same as that of the value. |
46 ↗ | (On Diff #164660) | As discussed, let's not change this API (+fillMemoryOperands, getMaxMemoryAccessSize). It already handles not supporting memory operands, which is valid for a target. |
tools/llvm-exegesis/lib/X86/Target.cpp | ||
102 ↗ | (On Diff #164660) | Conceptually, the "load immediate" opcode should be a function of the size of the register AND value, not just value (e.g. MOV64ri vs MOV64ri32). See my comment below. |
119 ↗ | (On Diff #164660) | Is there any case when the size of the value is not the same as that of the register ? If not, let's make this a requirement and crash if the value bit width is not exactly that of the register. |
318 ↗ | (On Diff #164660) | let's fail gracefully instead of crashing here. That's not the users' fault. |