View | Details | Raw Unified | Return to issue 124086
Collapse All | Expand All

(-)bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx.old (-1 / +16 lines)
Lines 45-56 Link Here
45
{
45
{
46
46
47
//==================================================================================================
47
//==================================================================================================
48
static void callVirtualMethod(
48
void callVirtualMethod(
49
    void * pAdjustedThisPtr,
49
    void * pAdjustedThisPtr,
50
    sal_Int32 nVtableIndex,
50
    sal_Int32 nVtableIndex,
51
    void * pRegisterReturn,
51
    void * pRegisterReturn,
52
    typelib_TypeClass eReturnType,
52
    typelib_TypeClass eReturnType,
53
    sal_Int32 * pStackLongs,
53
    sal_Int32 * pStackLongs,
54
    sal_Int32 nStackLongs ) __attribute__((noinline));
55
56
void callVirtualMethod(
57
    void * pAdjustedThisPtr,
58
    sal_Int32 nVtableIndex,
59
    void * pRegisterReturn,
60
    typelib_TypeClass eReturnType,
61
    sal_Int32 * pStackLongs,
54
    sal_Int32 nStackLongs )
62
    sal_Int32 nStackLongs )
55
{
63
{
56
	// parameter list is mixed list of * and values
64
	// parameter list is mixed list of * and values
Lines 67-72 Link Here
67
    void * stackptr;
75
    void * stackptr;
68
	asm volatile (
76
	asm volatile (
69
        "mov   %%esp, %6\n\t"
77
        "mov   %%esp, %6\n\t"
78
       // preserve potential 128bit stack alignment
79
        "and   $0xfffffff0, %%esp\n\t"
80
        "mov   %0, %%eax\n\t"
81
        "lea   -4(,%%eax,4), %%eax\n\t"
82
        "and   $0xf, %%eax\n\t"
83
        "sub   $0xc, %%eax\n\t"
84
        "add   %%eax, %%esp\n\t"
70
		// copy values
85
		// copy values
71
		"mov   %0, %%eax\n\t"
86
		"mov   %0, %%eax\n\t"
72
		"mov   %%eax, %%edx\n\t"
87
		"mov   %%eax, %%edx\n\t"

Return to issue 124086