WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
152784
Add new or32 implementation to MacroAssemblerARM after
r194613
https://bugs.webkit.org/show_bug.cgi?id=152784
Summary
Add new or32 implementation to MacroAssemblerARM after r194613
Csaba Osztrogonác
Reported
2016-01-06 03:31:31 PST
https://trac.webkit.org/changeset/194613
added the new or32 to ARMv7(Thumb2) and AArch64 assemblers, but not to ARMv7(ARM).
Attachments
Patch
(1.53 KB, patch)
2016-01-06 03:33 PST
,
Csaba Osztrogonác
no flags
Details
Formatted Diff
Diff
Patch
(1.67 KB, patch)
2016-01-07 03:20 PST
,
Csaba Osztrogonác
no flags
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Csaba Osztrogonác
Comment 1
2016-01-06 03:33:53 PST
Created
attachment 268365
[details]
Patch
Benjamin Poulain
Comment 2
2016-01-06 04:18:24 PST
Comment on
attachment 268365
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=268365&action=review
> Source/JavaScriptCore/assembler/MacroAssemblerARM.h:231 > + void or32(TrustedImm32 imm, AbsoluteAddress dest)
Uh, that sucks :(
> Source/JavaScriptCore/assembler/MacroAssemblerARM.h:235 > + or32(imm, ARMRegisters::S1);
I don't think that's fine. It will override S0 to load imm into register.
Csaba Osztrogonác
Comment 3
2016-01-06 04:44:52 PST
(In reply to
comment #2
)
> Comment on
attachment 268365
[details]
> Patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=268365&action=review
> > > Source/JavaScriptCore/assembler/MacroAssemblerARM.h:231 > > + void or32(TrustedImm32 imm, AbsoluteAddress dest) > > Uh, that sucks :( > > > Source/JavaScriptCore/assembler/MacroAssemblerARM.h:235 > > + or32(imm, ARMRegisters::S1); > > I don't think that's fine. It will override S0 to load imm into register.
It is a copy/paste of the ARMv7(Thumb2) change:
https://trac.webkit.org/changeset/194613/trunk/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h
And JSC stress tests run without regression.
Benjamin Poulain
Comment 4
2016-01-06 04:57:18 PST
(In reply to
comment #3
)
> > I don't think that's fine. It will override S0 to load imm into register. > > It is a copy/paste of the ARMv7(Thumb2) change: >
https://trac.webkit.org/changeset/194613/trunk/Source/JavaScriptCore/
> assembler/MacroAssemblerARMv7.h
The thumb version of or32() uses the "dataTempRegister" to load the immediate. It does not override the address. The ARM version you propose override the address.
> And JSC stress tests run without regression.
Looks like the test coverage is not good enough then. Please add a test.
Csaba Osztrogonác
Comment 5
2016-01-07 03:20:20 PST
Created
attachment 268449
[details]
Patch Thanks for catching this bug around or32(imm,reg). I think the easiest fix is reloading the address to S0 after or32(imm,reg) overwrote it. Let me know if you have better idea to fix this issue.
Csaba Osztrogonác
Comment 6
2016-01-07 03:22:27 PST
(In reply to
comment #4
)
> (In reply to
comment #3
)
> > And JSC stress tests run without regression. > Looks like the test coverage is not good enough then. Please add a test.
It's not trivial at all to write a test in JS to trigger a behaviour in macroassembler and there is no test framework for macroassembler, so I don't think if it is a fair request.
Benjamin Poulain
Comment 7
2016-01-07 04:51:28 PST
(In reply to
comment #6
)
> (In reply to
comment #4
) > > (In reply to
comment #3
) > > > > And JSC stress tests run without regression. > > Looks like the test coverage is not good enough then. Please add a test. > > It's not trivial at all to write a test in JS to trigger a behaviour > in macroassembler and there is no test framework for macroassembler, > so I don't think if it is a fair request.
You would need a stress-test that exercices the baseline-JIT/DFG part that uses this form of or32. I understand you don't want to do that. (In reply to
comment #5
)
> Created
attachment 268449
[details]
> Patch > > Thanks for catching this bug around or32(imm,reg). I think the easiest fix > is reloading the address to S0 after or32(imm,reg) overwrote it. Let me know > if you have better idea to fix this issue.
IMHO, that's perfectly reasonable.
Csaba Osztrogonác
Comment 8
2016-01-07 07:31:42 PST
Comment on
attachment 268449
[details]
Patch Clearing flags on attachment: 268449 Committed
r194698
: <
http://trac.webkit.org/changeset/194698
>
Csaba Osztrogonác
Comment 9
2016-01-07 07:31:51 PST
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug