Description[Interpreter] Allocates new temporary register outside the reservation for consecutive registers.
Consecutive registers are allocated in two passes. First we "reserve"
a set of registers and these get allocated when we actually use them.
If we request for a temporary register before we use all the consecutive
registers, the earlier implementation does not gaurantee that it allocates
outside the reservation for consecutive registers. This could cause problems
for example, in call_func(a, b++, c). This cl fixes
TemporaryRegisterScope::NewRegister, to return a new temporary register
outside the reservation for consecutive registers.
BUG=v8:4280
LOG=N
Committed: https://crrev.com/e7373f42859cff71f2a64780dcab35244f1ce343
Cr-Commit-Position: refs/heads/master@{#33005}
Patch Set 1 #
Total comments: 4
Patch Set 2 : Added checks to ensure innerscopes don't have a reservation for consecutive registers. #Patch Set 3 : "Allocates a new unallocted temporary register for allocations outside current or outer contexts" #
Total comments: 2
Patch Set 4 : "Addressed review comments." #Patch Set 5 : Updated mjsunit.status. #Patch Set 6 : Updated mjsunit.status for Debug mode. #Patch Set 7 : Fixing mjsunit.status again. one test is failing on bots. #
Messages
Total messages: 15 (4 generated)
|