Closed Bug 18692 Opened 26 years ago Closed 25 years ago

Fix xptcall code

Categories

(Core :: XPConnect, defect, P1)

Other
AIX
defect

Tracking

()

RESOLVED FIXED

People

(Reporter: jdunn, Assigned: jdunn)

References

Details

XPCInvoke seems to be working, but still having problems with XPCTest (it coredumps). This is needed to get the browser running since we now have dependencies on this.
Blocks: 18688
Status: NEW → ASSIGNED
Severity: normal → critical
Priority: P3 → P1
Target Milestone: M12
xptcall is now required to run, so currently the AIX build coredumps on startup. Originally we I had used the MAX PPC code (cpp & assembler) but unfortunately AIX does not support inline assembly. I am currently working with IBM on coming up with another solution.
jim, do you expect this to happen in the next few days?
Target Milestone: M12
pushing out...
I used the following URL to dig around and find out enough about the registers and stack to finally fix the XPT code. http://www.austin.ibm.com/doc_link/en_US/a_doc_lib/aixassem/alangref/linkage_con vent.htm Index: xptcstubs_asm_ppc_aix.s =================================================================== RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc_aix.s,v retrieving revision 1.3 diff -r1.3 xptcstubs_asm_ppc_aix.s 63a64,66 > mr r12,r3 # Move methodIndex into r12 for LATER > lwz r3,104(sp) # Get the 'original' r3 > 91,92c94,95 < # mr r4,r12 # methodIndex selector < addi r5,sp,232 # pointer to callers args area, beyond r3-r10 mapped range --- > mr r4,r12 # methodIndex selector (it is now LATER) > addi r5,sp,312 # pointer to callers args area, beyond r3-r10 mapped range Index: xptcstubs_ppc_aix.cpp =================================================================== RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_aix.cpp,v retrieving revision 1.4 diff -r1.4 xptcstubs_ppc_aix.cpp 44c44 < #define PARAM_GPR_COUNT 7 --- > #define PARAM_GPR_COUNT 7 196c196 < extern "C" int SharedStub(void *, int); --- > extern "C" int SharedStub(int); 201c201 < return SharedStub(this, n); \ --- > return SharedStub(n); \
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
Checked in code (it is in M12)
You need to log in before you can comment on or make changes to this bug.