Closed Bug 956606 Opened 10 years ago Closed 10 years ago

error: 'GetFloatArgStackDisp' was not declared in this scope

Categories

(Core :: JavaScript Engine: JIT, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: romaxa, Assigned: mjrosenb)

References

Details

Attachments

(1 file, 1 obsolete file)

Sounds like in this changeset http://hg.mozilla.org/mozilla-central/rev/d3cb4aa974a7 
we renamed GetFloatArgStackDisp to Double but in place where it is used

mJSLoadHeap(js::jit::MAsmJSLoadHeap*)':
js/src/jit/arm/Lowering-arm.cpp:491:17: warning: unused variable 'ptrValue' [-Wunused-variable]
In file included from js/src/Unified_cpp_5.cpp:92:0:
js/src/jit/arm/MacroAssembler-arm.cpp: In member function 'void js::jit::MacroAssemblerARMCompat::passABIArg(const js::jit::MoveOperand&, js::jit::MoveOp::Type)':
js/src/jit/arm/MacroAssembler-arm.cpp:3536:91: error: 'GetFloatArgStackDisp' was not declared in this scope
make[1]: *** [Unified_cpp_5.o] Error 1
Attachment #8355933 - Flags: review?(jdemooij)
Comment on attachment 8355933 [details] [diff] [review]
GetFloatArgStackDisp > GetDoubleArgStackDisp

This is in code used for both MoveOp::DOUBLE and MoveOp::FLOAT32. Should this be using GetFloat32ArgStackDisp for the FLOAT32 case? If not, then perhaps the GetFloat32ArgStackDisp function added in bug 949668 isn't actually needed.
Comment on attachment 8355933 [details] [diff] [review]
GetFloatArgStackDisp > GetDoubleArgStackDisp

Forwarding to sunfish.
Attachment #8355933 - Flags: review?(jdemooij) → review?(sunfish)
See Also: → 957504
Marty, do you know how much stack space to float32 arguments should get in the ARM hardfp ABI?
Flags: needinfo?(mrosenberg)
They use 32 bits.
Flags: needinfo?(mrosenberg)
In that case, the attached patch is probably what is needed. However, I'm not currently able to test this, on a hardfp ARM platform, so it's currently untested.
Assignee: nobody → sunfish
Attachment #8355933 - Attachment is obsolete: true
Attachment #8355933 - Flags: review?(sunfish)
Attachment #8357241 - Flags: review?(mrosenberg)
> In that case, the attached patch is probably what is needed. However, I'm
> not currently able to test this, on a hardfp ARM platform, so it's currently
> untested.
Cannot test it properly because, of bug 957504
Comment on attachment 8357241 [details] [diff] [review]
hardfp-arg-stack-reg.patch

Review of attachment 8357241 [details] [diff] [review]:
-----------------------------------------------------------------

This patch isn't wrong, but it is not correct either.  This code path needs a large amount of reworking.  I'm currently about 5 yaks deep in it.
Attachment #8357241 - Flags: review?(mrosenberg)
Assignee: sunfish → mrosenberg
> a large amount of reworking.  I'm currently about 5 yaks deep in it.

Is there are chance to get it fixed in 29.0 ?
If this path is only needed for calls to system maths functions then perhaps a temporary workaround would be to just disable the specialization to float32 ops on the ARM hardfp build of functions that pass more than one float32 argument.  There appears to be a similar workaround in the Odin compiler for pow and atan2.  Perhaps fixing this depends on bug 962263.
Blocks: 845086
The ARM JIT simulator in bug 959597 adds code that accounts for every combination of passed arguments for ABI calls, and interestingly the only combination needed for the simulator with float32 arguments is the Args_Float32_Float32 case with a single float32 argument. So, perhaps this code path is not even being used, perhaps just assert that usedIntSlots_ and usedFloatSlots_ are zero for a float32 argument to get this building again, and keep a look out for assertion failures?
This I beleive already fixed
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: