optimization passes, lifters, jmp tables #1

Open
opened 3 years ago by root · 0 comments
root commented 3 years ago
Owner

VSP (virtual stack pointer) is passed into the devirtualized routine as arg1. This prevents the mem2reg pass from promoting memory references to local variables as it only works on alloca variables.

solution: lifetime annotations

I am unsure how the MBA (mixed boolean-arithemtic) will be effected by this stack variable promotion... We will see

Some of the lifters (IMUL, IDIV, SHLD, SHRD) are totally fucked and not correct at all. RDTSC is not even programmed completely as well.

Jmp tables (both indirect and direct) are supported by vmemu and all blocks are able to be uncovered, however vmdevirt has not been programmed to generate switch cases.

VSP (virtual stack pointer) is passed into the devirtualized routine as arg1. This prevents the mem2reg pass from promoting memory references to local variables as it only works on `alloca` variables. solution: lifetime annotations I am unsure how the MBA (mixed boolean-arithemtic) will be effected by this stack variable promotion... We will see Some of the lifters (IMUL, IDIV, SHLD, SHRD) are totally fucked and not correct at all. RDTSC is not even programmed completely as well. Jmp tables (both indirect and direct) are supported by vmemu and all blocks are able to be uncovered, however vmdevirt has not been programmed to generate switch cases.
root added this to the fixing pre-alpha issues milestone 3 years ago
IDontCode was assigned by root 3 years ago
Sign in to join this conversation.
No Label
No project
No Assignees
1 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

Reference: vmp2/vmdevirt#1
Loading…
There is no content yet.