RESOLVED FIXED 127545
ARM Offline assembler temporary register allocator has duplicate register when building fat binaries
https://bugs.webkit.org/show_bug.cgi?id=127545
Summary ARM Offline assembler temporary register allocator has duplicate register whe...
Michael Saboff
Reported 2014-01-23 22:09:05 PST
When the offline assembler is used to build a fat ARM binary, say ARMv7 and ARMv7s, the concat in getModifiedListARMCommon (ARM_EXTRA_GPRS.concat([SpecialRegister.new("r11")]) ) is executed twice, thus adding r11 a second time. Two subsequent requests for a temporary register can result in bad code being generated.
Attachments
Patch (2.23 KB, patch)
2014-01-23 22:26 PST, Michael Saboff
mark.lam: review+
Michael Saboff
Comment 1 2014-01-23 22:11:52 PST
Michael Saboff
Comment 2 2014-01-23 22:26:06 PST
Filip Pizlo
Comment 3 2014-01-23 22:37:16 PST
Comment on attachment 222079 [details] Patch Isn't the bug here just that someone used the .concat() method, which modifies the receiver, instead of using the + operator, which does not?
Michael Saboff
Comment 4 2014-01-23 22:43:01 PST
(In reply to comment #3) > (From update of attachment 222079 [details]) > Isn't the bug here just that someone used the .concat() method, which modifies the receiver, instead of using the + operator, which does not? That is another way to solve it, but the proposed solution is simpler.
Mark Lam
Comment 5 2014-01-23 22:51:07 PST
Comment on attachment 222079 [details] Patch r=me
Michael Saboff
Comment 6 2014-01-24 08:30:00 PST
Note You need to log in before you can comment on or make changes to this bug.