Lines 604-609
double jsRound(double d)
Link Here
|
604 |
MathThunkCallingConvention function##Thunk(MathThunkCallingConvention); \ |
604 |
MathThunkCallingConvention function##Thunk(MathThunkCallingConvention); \ |
605 |
} \ |
605 |
} \ |
606 |
static MathThunk UnaryDoubleOpWrapper(function) = &function##Thunk; |
606 |
static MathThunk UnaryDoubleOpWrapper(function) = &function##Thunk; |
|
|
607 |
#elif CPU(X86) && COMPILER(GCC) && OS(LINUX) && defined(__PIC__) |
608 |
#define defineUnaryDoubleOpWrapper(function) \ |
609 |
asm( \ |
610 |
".text\n" \ |
611 |
".globl " SYMBOL_STRING(function##Thunk) "\n" \ |
612 |
HIDE_SYMBOL(function##Thunk) "\n" \ |
613 |
SYMBOL_STRING(function##Thunk) ":" "\n" \ |
614 |
"pushl %ebx\n" \ |
615 |
"subl $20, %esp\n" \ |
616 |
"movsd %xmm0, (%esp) \n" \ |
617 |
"call __x86.get_pc_thunk.bx\n" \ |
618 |
"addl $_GLOBAL_OFFSET_TABLE_, %ebx\n" \ |
619 |
"call " GLOBAL_REFERENCE(function) "\n" \ |
620 |
"fstpl (%esp) \n" \ |
621 |
"movsd (%esp), %xmm0 \n" \ |
622 |
"addl $20, %esp\n" \ |
623 |
"popl %ebx\n" \ |
624 |
"ret\n" \ |
625 |
);\ |
626 |
extern "C" { \ |
627 |
MathThunkCallingConvention function##Thunk(MathThunkCallingConvention); \ |
628 |
} \ |
629 |
static MathThunk UnaryDoubleOpWrapper(function) = &function##Thunk; |
607 |
#elif CPU(X86) && COMPILER(GCC) && (OS(DARWIN) || OS(LINUX)) |
630 |
#elif CPU(X86) && COMPILER(GCC) && (OS(DARWIN) || OS(LINUX)) |
608 |
#define defineUnaryDoubleOpWrapper(function) \ |
631 |
#define defineUnaryDoubleOpWrapper(function) \ |
609 |
asm( \ |
632 |
asm( \ |