|Summary:||ARM64 MacroAssembler improperly reuses data temp register in test32() and test8() calls|
|Product:||WebKit||Reporter:||Michael Saboff <msaboff>|
|Severity:||Normal||CC:||commit-queue, keith_miller, mark.lam, sbarati|
|Version:||WebKit Nightly Build|
|Hardware:||iPhone / iPad|
|Bug Depends on:|
Description Michael Saboff 2015-12-16 17:55:29 PST
The void test32(ResultCondition cond, Address address, TrustedImm32 mask, RegisterID dest) and the similar test8() use the dataTempRegister with the value loaded from "address" and then call void test32(ResultCondition cond, RegisterID src, TrustedImm32 mask, RegisterID dest). The two register version of test32 can use the dataTempRegister to materialize the immediate mask.
Comment 2 WebKit Commit Bot 2015-12-16 21:03:16 PST
Comment on attachment 267516 [details] Patch Clearing flags on attachment: 267516 Committed r194208: <http://trac.webkit.org/changeset/194208>
Comment 3 WebKit Commit Bot 2015-12-16 21:03:19 PST
All reviewed patches have been landed. Closing bug.
Comment 4 Geoffrey Garen 2015-12-17 14:02:20 PST
Comment on attachment 267516 [details] Patch Does this work? Keith told me this doesn't work.
Comment 5 Michael Saboff 2015-12-17 14:06:22 PST
(In reply to comment #4) > Comment on attachment 267516 [details] > Patch > > Does this work? Keith told me this doesn't work. From my discussion with Keith, this is what he tried and it work. He was concerned that there were other issues, but I couldn't find any.
Comment 6 Keith Miller 2015-12-17 15:22:57 PST
My patch is working with this patch applied so this should be sufficient.