< prev index next >

src/cpu/x86/vm/macroAssembler_x86_sin.cpp

Print this page




 363     0xffffffffUL, 0x3fefffffUL
 364 };
 365 
 366 ALIGNED_(8) juint _TWO_POW_55[] =
 367 {
 368     0x00000000UL, 0x43600000UL
 369 };
 370 
 371 ALIGNED_(8) juint _TWO_POW_M55[] =
 372 {
 373     0x00000000UL, 0x3c800000UL
 374 };
 375 
 376 ALIGNED_(8) juint StubRoutines::x86::_P_1[] =
 377 {
 378     0x54400000UL, 0x3fb921fbUL
 379 };
 380 
 381 ALIGNED_(8) juint StubRoutines::x86::_NEG_ZERO[] =
 382 {
 383     0x00000000UL, 0x3c800000UL
 384 };
 385 
 386 void MacroAssembler::fast_sin(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3, XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7, Register eax, Register ebx, Register ecx, Register edx, Register tmp1, Register tmp2, Register tmp3, Register tmp4) {
 387   Label L_2TAG_PACKET_0_0_1, L_2TAG_PACKET_1_0_1, L_2TAG_PACKET_2_0_1, L_2TAG_PACKET_3_0_1;
 388   Label L_2TAG_PACKET_4_0_1, L_2TAG_PACKET_5_0_1, L_2TAG_PACKET_6_0_1, L_2TAG_PACKET_7_0_1;
 389   Label L_2TAG_PACKET_8_0_1, L_2TAG_PACKET_9_0_1, L_2TAG_PACKET_10_0_1, L_2TAG_PACKET_11_0_1;
 390   Label L_2TAG_PACKET_13_0_1, L_2TAG_PACKET_14_0_1;
 391   Label L_2TAG_PACKET_12_0_1, B1_1, B1_2, B1_4, start;
 392 
 393   assert_different_registers(tmp1, tmp2, tmp3, tmp4, eax, ebx, ecx, edx);
 394   address ONEHALF = StubRoutines::x86::_ONEHALF_addr();
 395   address P_2 = StubRoutines::x86::_P_2_addr();
 396   address SC_4 = StubRoutines::x86::_SC_4_addr();
 397   address Ctable = StubRoutines::x86::_Ctable_addr();
 398   address SC_2 = StubRoutines::x86::_SC_2_addr();
 399   address SC_3 = StubRoutines::x86::_SC_3_addr();
 400   address SC_1 = StubRoutines::x86::_SC_1_addr();
 401   address PI_INV_TABLE = StubRoutines::x86::_PI_INV_TABLE_addr();
 402   address PI_4 = (address)StubRoutines::x86::_PI_4_addr();
 403   address PI32INV = (address)StubRoutines::x86::_PI32INV_addr();




 363     0xffffffffUL, 0x3fefffffUL
 364 };
 365 
 366 ALIGNED_(8) juint _TWO_POW_55[] =
 367 {
 368     0x00000000UL, 0x43600000UL
 369 };
 370 
 371 ALIGNED_(8) juint _TWO_POW_M55[] =
 372 {
 373     0x00000000UL, 0x3c800000UL
 374 };
 375 
 376 ALIGNED_(8) juint StubRoutines::x86::_P_1[] =
 377 {
 378     0x54400000UL, 0x3fb921fbUL
 379 };
 380 
 381 ALIGNED_(8) juint StubRoutines::x86::_NEG_ZERO[] =
 382 {
 383     0x00000000UL, 0x80000000UL
 384 };
 385 
 386 void MacroAssembler::fast_sin(XMMRegister xmm0, XMMRegister xmm1, XMMRegister xmm2, XMMRegister xmm3, XMMRegister xmm4, XMMRegister xmm5, XMMRegister xmm6, XMMRegister xmm7, Register eax, Register ebx, Register ecx, Register edx, Register tmp1, Register tmp2, Register tmp3, Register tmp4) {
 387   Label L_2TAG_PACKET_0_0_1, L_2TAG_PACKET_1_0_1, L_2TAG_PACKET_2_0_1, L_2TAG_PACKET_3_0_1;
 388   Label L_2TAG_PACKET_4_0_1, L_2TAG_PACKET_5_0_1, L_2TAG_PACKET_6_0_1, L_2TAG_PACKET_7_0_1;
 389   Label L_2TAG_PACKET_8_0_1, L_2TAG_PACKET_9_0_1, L_2TAG_PACKET_10_0_1, L_2TAG_PACKET_11_0_1;
 390   Label L_2TAG_PACKET_13_0_1, L_2TAG_PACKET_14_0_1;
 391   Label L_2TAG_PACKET_12_0_1, B1_1, B1_2, B1_4, start;
 392 
 393   assert_different_registers(tmp1, tmp2, tmp3, tmp4, eax, ebx, ecx, edx);
 394   address ONEHALF = StubRoutines::x86::_ONEHALF_addr();
 395   address P_2 = StubRoutines::x86::_P_2_addr();
 396   address SC_4 = StubRoutines::x86::_SC_4_addr();
 397   address Ctable = StubRoutines::x86::_Ctable_addr();
 398   address SC_2 = StubRoutines::x86::_SC_2_addr();
 399   address SC_3 = StubRoutines::x86::_SC_3_addr();
 400   address SC_1 = StubRoutines::x86::_SC_1_addr();
 401   address PI_INV_TABLE = StubRoutines::x86::_PI_INV_TABLE_addr();
 402   address PI_4 = (address)StubRoutines::x86::_PI_4_addr();
 403   address PI32INV = (address)StubRoutines::x86::_PI32INV_addr();


< prev index next >