Skip to content

write-barrier slow path sharing CLs did not block LR in all necessary places on ARM #34411

@mraleph

Description

@mraleph

On ARM we

I see that StoreInstanceFieldInstr takes care to reserve it, but StoreStaticFieldInstr and StoreIndexedInstr does not seem to do the same.

Also I noticed that StoreInstanceFieldInstr has the following problem: even if ShouldEmitStoreBarrier() is false we might still emit a store barrier - because this might be an unboxed store (e.g. obj.field = 2.0) in which case we don't need a store barrier for the value, but we need a store barrier for the temporary box - this means that LR needs to be blocked for these cases as well.

I think StoreIntoObject on ARM needs to assert that object != LR - to make sure that we catch any remaining cases where this does not hold.

[I am marking this as a P0 because this might lead to hard to debug issues where LR is overwritten with strange values]

Metadata

Metadata

Labels

P0A serious issue requiring immediate resolutionarea-vmUse area-vm for VM related issues, including code coverage, and the AOT and JIT backends.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions