Commit ccb24b84 authored by neis's avatar neis Committed by Commit bot

[generators] Fix loading of FormalParameterCount on 64bit archs.

BUG=v8:4907

Review-Url: https://codereview.chromium.org/2006653003
Cr-Commit-Position: refs/heads/master@{#36467}
parent a23222ed
...@@ -775,9 +775,8 @@ void Builtins::Generate_ResumeGeneratorTrampoline(MacroAssembler* masm) { ...@@ -775,9 +775,8 @@ void Builtins::Generate_ResumeGeneratorTrampoline(MacroAssembler* masm) {
// New-style (ignition/turbofan) generator object // New-style (ignition/turbofan) generator object
{ {
__ Ldr(x0, FieldMemOperand(x4, JSFunction::kSharedFunctionInfoOffset)); __ Ldr(x0, FieldMemOperand(x4, JSFunction::kSharedFunctionInfoOffset));
__ Ldr(x0, __ Ldr(w0,
FieldMemOperand(x0, SharedFunctionInfo::kFormalParameterCountOffset)); FieldMemOperand(x0, SharedFunctionInfo::kFormalParameterCountOffset));
__ SmiUntag(x0);
// We abuse new.target both to indicate that this is a resume call and to // We abuse new.target both to indicate that this is a resume call and to
// pass in the generator object. In ordinary calls, new.target is always // pass in the generator object. In ordinary calls, new.target is always
// undefined because generator functions are non-constructable. // undefined because generator functions are non-constructable.
......
...@@ -763,7 +763,6 @@ void Builtins::Generate_ResumeGeneratorTrampoline(MacroAssembler* masm) { ...@@ -763,7 +763,6 @@ void Builtins::Generate_ResumeGeneratorTrampoline(MacroAssembler* masm) {
__ ld(a0, FieldMemOperand(a4, JSFunction::kSharedFunctionInfoOffset)); __ ld(a0, FieldMemOperand(a4, JSFunction::kSharedFunctionInfoOffset));
__ lw(a0, __ lw(a0,
FieldMemOperand(a0, SharedFunctionInfo::kFormalParameterCountOffset)); FieldMemOperand(a0, SharedFunctionInfo::kFormalParameterCountOffset));
__ SmiUntag(a0);
// We abuse new.target both to indicate that this is a resume call and to // We abuse new.target both to indicate that this is a resume call and to
// pass in the generator object. In ordinary calls, new.target is always // pass in the generator object. In ordinary calls, new.target is always
// undefined because generator functions are non-constructable. // undefined because generator functions are non-constructable.
......
...@@ -530,12 +530,8 @@ ...@@ -530,12 +530,8 @@
# Issue 3219: # Issue 3219:
'getters-on-elements': [PASS, ['gc_stress == True', FAIL]], 'getters-on-elements': [PASS, ['gc_stress == True', FAIL]],
# BUG(v8:4907)
'harmony/generators-turbo': [SKIP],
# Ignition. # Ignition.
'es6/templates': [PASS, ['no_snap and mode == debug', NO_IGNITION]], 'es6/templates': [PASS, ['no_snap and mode == debug', NO_IGNITION]],
'harmony/generators': [PASS, ['no_snap and mode == debug', NO_IGNITION]],
'regress/regress-crbug-364374': [PASS, ['no_snap and mode == debug', NO_IGNITION]], 'regress/regress-crbug-364374': [PASS, ['no_snap and mode == debug', NO_IGNITION]],
}], # 'arch == arm64 and mode == debug and simulator_run == True' }], # 'arch == arm64 and mode == debug and simulator_run == True'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment