30 lines
902 B
Diff
30 lines
902 B
Diff
|
# HG changeset patch
|
||
|
# User Douglas Crosher <dtc-moz@scieneer.com>
|
||
|
# Date 1415349848 -39600
|
||
|
# Fri Nov 07 19:44:08 2014 +1100
|
||
|
# Node ID b98d6205da98b5bec30b0677c30a6d09f351f4b8
|
||
|
# Parent 17e19083908620e8a83876e49bac6f6ba2fcc272
|
||
|
Bug 1050258 - ARM hard-float XPCOM: correct argument passing.
|
||
|
|
||
|
diff --git a/xpcom/reflect/xptcall/md/unix/xptcinvoke_arm.cpp b/xpcom/reflect/xptcall/md/unix/xptcinvoke_arm.cpp
|
||
|
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_arm.cpp
|
||
|
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_arm.cpp
|
||
|
@@ -219,16 +219,17 @@ static inline void copy_dword(uint32_t*
|
||
|
{
|
||
|
if (ireg_args + 1 < end) {
|
||
|
if ((uint32_t)ireg_args & 4) {
|
||
|
ireg_args++;
|
||
|
}
|
||
|
*(uint64_t *)ireg_args = data;
|
||
|
ireg_args += 2;
|
||
|
} else {
|
||
|
+ ireg_args = end;
|
||
|
if ((uint32_t)stack_args & 4) {
|
||
|
stack_args++;
|
||
|
}
|
||
|
*(uint64_t *)stack_args = data;
|
||
|
stack_args += 2;
|
||
|
}
|
||
|
}
|
||
|
|