IonMonkey: Register allocation spills after reused registers

RESOLVED DUPLICATE of bug 1179242

Status

()

Core
JavaScript Engine: JIT
RESOLVED DUPLICATE of bug 1179242
2 years ago
2 years ago

People

(Reporter: sunfish, Unassigned)

Tracking

({perf})

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

2 years ago
For this code:

(function test (glob, env, b) {
  'use asm';
  function add(x) {
    x = x|0;
    x = (((x >> 1) >> 1) >> 1) >> 1;
    return x|0;
  }
  return add;
})();

The register allocator currently spills the value after each shift on x64:

 sarl       $1, %eax 
 movl       %eax, 0xc(%rsp)
 sarl       $1, %eax 
 movl       %eax, 0xc(%rsp)
 sarl       $1, %eax 
 movl       %eax, 0xc(%rsp)
 sarl       $1, %eax 
 movl       %eax, 0xc(%rsp)
(Reporter)

Comment 1

2 years ago
The testcase above is also fixed by the changes for bug 1179242.
Status: NEW → RESOLVED
Last Resolved: 2 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 1179242
You need to log in before you can comment on or make changes to this bug.