Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

arm64: fix the fpsmid context save/restore issue #4683

Merged
merged 1 commit into from
Nov 9, 2020

Conversation

lemin9538
Copy link
Contributor

current when save and restore fpsmid register is using following
instruction:

# FMOVD F0, 16*1(R0)

this instruction will compiled to:

# str     d0, [x0, #16]

D0 is a 64bit register not 128bit, then upper 64bit data
are loss, which will cause application meet many random
crash issue. need use 128bit register v0 or q0 to save
the fpsmid context.

seems golang do not support fpsmid well for arrch64, I do not find related instruction to do this work, so use WORD instead.

@google-cla google-cla bot added the cla: yes CLA has been signed label Oct 29, 2020
current when save fpsmid register is using following
instruction:

	# FMOVD Fx, 16*1(R0)

this instruction will compiled to:

	# str     Dx, [x0, google#16]

Dx is 64bit fp register not 128bit, then upper 64bit data
will be lossed, this will cause application meet many random
crash issue. need use 128bit register Vx or Q0 to save and
restore the fpsmid context.

Signed-off-by: Min Le <lemin.lm@antgroup.com>
@lemin9538
Copy link
Contributor Author

@lubinszARM

@lubinszARM
Copy link
Contributor

Good job.
LGTM.

@adamliyi
Copy link
Contributor

adamliyi commented Nov 2, 2020

Good work! This patch also fixed some random errors in video transcoding.

@lemin9538
Copy link
Contributor Author

@avagin

@avagin avagin added ready to pull kokoro:run Presubmits may be run labels Nov 7, 2020
@gvisor-bot gvisor-bot removed the kokoro:run Presubmits may be run label Nov 7, 2020
copybara-service bot pushed a commit that referenced this pull request Nov 7, 2020
current when save and restore fpsmid register is using following
instruction:

	# FMOVD F0, 16*1(R0)

this instruction will compiled to:

	# str     d0, [x0, #16]

D0 is a 64bit register not 128bit, then upper 64bit data
are loss, which will cause application meet many random
crash issue. need use 128bit register v0 or q0 to save
the fpsmid context.

seems golang do not support fpsmid well for arrch64, I do not find related instruction to do this work, so use WORD instead.

FUTURE_COPYBARA_INTEGRATE_REVIEW=#4683 from lemin9538:lemin_fpsmid_fix 185b88e
PiperOrigin-RevId: 341155522
@copybara-service copybara-service bot merged commit d4e0b82 into google:master Nov 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla: yes CLA has been signed ready to pull
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants