亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? libm_sincos_large.s

?? linux下的C語言庫源碼有一百多M解壓后很不錯
?? S
?? 第 1 頁 / 共 4 頁
字號:
.file "libm_sincos_large.s"// Copyright (c) 2002 - 2003, Intel Corporation// All rights reserved.//// Contributed 2002 by the Intel Numerics Group, Intel Corporation//// Redistribution and use in source and binary forms, with or without// modification, are permitted provided that the following conditions are// met://// * Redistributions of source code must retain the above copyright// notice, this list of conditions and the following disclaimer.//// * Redistributions in binary form must reproduce the above copyright// notice, this list of conditions and the following disclaimer in the// documentation and/or other materials provided with the distribution.//// * The name of Intel Corporation may not be used to endorse or promote// products derived from this software without specific prior written// permission.// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.//// Intel Corporation is the author of this code, and requests that all// problem reports or change requests be submitted to it directly at// http://www.intel.com/software/products/opensource/libraries/num.htm.//// History//==============================================================// 02/15/02 Initial version// 05/13/02 Changed interface to __libm_pi_by_2_reduce// 02/10/03 Reordered header: .section, .global, .proc, .align;//          used data8 for long double table values// 05/15/03 Reformatted data tables////// Overview of operation//==============================================================//// These functions calculate the sin and cos for inputs// greater than 2^10//// __libm_sin_large#// __libm_cos_large#// They accept argument in f8// and return result in f8 without final rounding//// __libm_sincos_large#// It accepts argument in f8// and returns cos in f8 and sin in f9 without final rounding//////*********************************************************************//// Accuracy:       Within .7 ulps for 80-bit floating point values//                 Very accurate for double precision values////*********************************************************************//// Resources Used:////    Floating-Point Registers: f8 as Input Value, f8 and f9 as Return Values//                              f32-f103////    General Purpose Registers://      r32-r43//      r44-r45 (Used to pass arguments to pi_by_2 reduce routine)////    Predicate Registers:      p6-p13////*********************************************************************////  IEEE Special Conditions:////    Denormal  fault raised on denormal inputs//    Overflow exceptions do not occur//    Underflow exceptions raised when appropriate for sin//    (No specialized error handling for this routine)//    Inexact raised when appropriate by algorithm////    sin(SNaN) = QNaN//    sin(QNaN) = QNaN//    sin(inf) = QNaN//    sin(+/-0) = +/-0//    cos(inf) = QNaN//    cos(SNaN) = QNaN//    cos(QNaN) = QNaN//    cos(0) = 1////*********************************************************************////  Mathematical Description//  ========================////  The computation of FSIN and FCOS is best handled in one piece of//  code. The main reason is that given any argument Arg, computation//  of trigonometric functions first calculate N and an approximation//  to alpha where////  Arg = N pi/2 + alpha, |alpha| <= pi/4.////  Since////  cos( Arg ) = sin( (N+1) pi/2 + alpha ),////  therefore, the code for computing sine will produce cosine as long//  as 1 is added to N immediately after the argument reduction//  process.////  Let M = N if sine//      N+1 if cosine.////  Now, given////  Arg = M pi/2  + alpha, |alpha| <= pi/4,////  let I = M mod 4, or I be the two lsb of M when M is represented//  as 2's complement. I = [i_0 i_1]. Then////  sin( Arg ) = (-1)^i_0  sin( alpha ) if i_1 = 0,//             = (-1)^i_0  cos( alpha )     if i_1 = 1.////  For example://       if M = -1, I = 11//         sin ((-pi/2 + alpha) = (-1) cos (alpha)//       if M = 0, I = 00//         sin (alpha) = sin (alpha)//       if M = 1, I = 01//         sin (pi/2 + alpha) = cos (alpha)//       if M = 2, I = 10//         sin (pi + alpha) = (-1) sin (alpha)//       if M = 3, I = 11//         sin ((3/2)pi + alpha) = (-1) cos (alpha)////  The value of alpha is obtained by argument reduction and//  represented by two working precision numbers r and c where////  alpha =  r  +  c     accurately.////  The reduction method is described in a previous write up.//  The argument reduction scheme identifies 4 cases. For Cases 2//  and 4, because |alpha| is small, sin(r+c) and cos(r+c) can be//  computed very easily by 2 or 3 terms of the Taylor series//  expansion as follows:////  Case 2://  -------////  sin(r + c) = r + c - r^3/6  accurately//  cos(r + c) = 1 - 2^(-67)    accurately////  Case 4://  -------////  sin(r + c) = r + c - r^3/6 + r^5/120    accurately//  cos(r + c) = 1 - r^2/2 + r^4/24     accurately////  The only cases left are Cases 1 and 3 of the argument reduction//  procedure. These two cases will be merged since after the//  argument is reduced in either cases, we have the reduced argument//  represented as r + c and that the magnitude |r + c| is not small//  enough to allow the usage of a very short approximation.////  The required calculation is either////  sin(r + c)  =  sin(r)  +  correction,  or//  cos(r + c)  =  cos(r)  +  correction.////  Specifically,////  sin(r + c) = sin(r) + c sin'(r) + O(c^2)//         = sin(r) + c cos (r) + O(c^2)//         = sin(r) + c(1 - r^2/2)  accurately.//  Similarly,////  cos(r + c) = cos(r) - c sin(r) + O(c^2)//         = cos(r) - c(r - r^3/6)  accurately.////  We therefore concentrate on accurately calculating sin(r) and//  cos(r) for a working-precision number r, |r| <= pi/4 to within//  0.1% or so.////  The greatest challenge of this task is that the second terms of//  the Taylor series////  r - r^3/3! + r^r/5! - ...////  and////  1 - r^2/2! + r^4/4! - ...////  are not very small when |r| is close to pi/4 and the rounding//  errors will be a concern if simple polynomial accumulation is//  used. When |r| < 2^-3, however, the second terms will be small//  enough (6 bits or so of right shift) that a normal Horner//  recurrence suffices. Hence there are two cases that we consider//  in the accurate computation of sin(r) and cos(r), |r| <= pi/4.////  Case small_r: |r| < 2^(-3)//  --------------------------////  Since Arg = M pi/4 + r + c accurately, and M mod 4 is [i_0 i_1],//  we have////  sin(Arg) = (-1)^i_0 * sin(r + c)    if i_1 = 0//       = (-1)^i_0 * cos(r + c)    if i_1 = 1////  can be accurately approximated by////  sin(Arg) = (-1)^i_0 * [sin(r) + c]  if i_1 = 0//           = (-1)^i_0 * [cos(r) - c*r] if i_1 = 1////  because |r| is small and thus the second terms in the correction//  are unneccessary.////  Finally, sin(r) and cos(r) are approximated by polynomials of//  moderate lengths.////  sin(r) =  r + S_1 r^3 + S_2 r^5 + ... + S_5 r^11//  cos(r) =  1 + C_1 r^2 + C_2 r^4 + ... + C_5 r^10////  We can make use of predicates to selectively calculate//  sin(r) or cos(r) based on i_1.////  Case normal_r: 2^(-3) <= |r| <= pi/4//  ------------------------------------////  This case is more likely than the previous one if one considers//  r to be uniformly distributed in [-pi/4 pi/4]. Again,////  sin(Arg) = (-1)^i_0 * sin(r + c)    if i_1 = 0//           = (-1)^i_0 * cos(r + c)    if i_1 = 1.////  Because |r| is now larger, we need one extra term in the//  correction. sin(Arg) can be accurately approximated by////  sin(Arg) = (-1)^i_0 * [sin(r) + c(1-r^2/2)]      if i_1 = 0//           = (-1)^i_0 * [cos(r) - c*r*(1 - r^2/6)]    i_1 = 1.////  Finally, sin(r) and cos(r) are approximated by polynomials of//  moderate lengths.////  sin(r) =  r + PP_1_hi r^3 + PP_1_lo r^3 +//                PP_2 r^5 + ... + PP_8 r^17////  cos(r) =  1 + QQ_1 r^2 + QQ_2 r^4 + ... + QQ_8 r^16////  where PP_1_hi is only about 16 bits long and QQ_1 is -1/2.//  The crux in accurate computation is to calculate////  r + PP_1_hi r^3   or  1 + QQ_1 r^2////  accurately as two pieces: U_hi and U_lo. The way to achieve this//  is to obtain r_hi as a 10 sig. bit number that approximates r to//  roughly 8 bits or so of accuracy. (One convenient way is////  r_hi := frcpa( frcpa( r ) ).)////  This way,////  r + PP_1_hi r^3 =  r + PP_1_hi r_hi^3 +//                          PP_1_hi (r^3 - r_hi^3)//              =  [r + PP_1_hi r_hi^3]  +//             [PP_1_hi (r - r_hi)//                (r^2 + r_hi r + r_hi^2) ]//              =  U_hi  +  U_lo////  Since r_hi is only 10 bit long and PP_1_hi is only 16 bit long,//  PP_1_hi * r_hi^3 is only at most 46 bit long and thus computed//  exactly. Furthermore, r and PP_1_hi r_hi^3 are of opposite sign//  and that there is no more than 8 bit shift off between r and//  PP_1_hi * r_hi^3. Hence the sum, U_hi, is representable and thus//  calculated without any error. Finally, the fact that////  |U_lo| <= 2^(-8) |U_hi|////  says that U_hi + U_lo is approximating r + PP_1_hi r^3 to roughly//  8 extra bits of accuracy.////  Similarly,////  1 + QQ_1 r^2  =  [1 + QQ_1 r_hi^2]  +//                      [QQ_1 (r - r_hi)(r + r_hi)]//            =  U_hi  +  U_lo.////  Summarizing, we calculate r_hi = frcpa( frcpa( r ) ).////  If i_1 = 0, then////    U_hi := r + PP_1_hi * r_hi^3//    U_lo := PP_1_hi * (r - r_hi) * (r^2 + r*r_hi + r_hi^2)//    poly := PP_1_lo r^3 + PP_2 r^5 + ... + PP_8 r^17//    correction := c * ( 1 + C_1 r^2 )////  Else ...i_1 = 1////    U_hi := 1 + QQ_1 * r_hi * r_hi//    U_lo := QQ_1 * (r - r_hi) * (r + r_hi)//    poly := QQ_2 * r^4 + QQ_3 * r^6 + ... + QQ_8 r^16//    correction := -c * r * (1 + S_1 * r^2)////  End////  Finally,////  V := poly + ( U_lo + correction )////                 /    U_hi  +  V         if i_0 = 0//  result := |//                 \  (-U_hi) -  V         if i_0 = 1////  It is important that in the last step, negation of U_hi is//  performed prior to the subtraction which is to be performed in//  the user-set rounding mode.//////  Algorithmic Description//  =======================////  The argument reduction algorithm is tightly integrated into FSIN//  and FCOS which share the same code. The following is complete and//  self-contained. The argument reduction description given//  previously is repeated below.//////  Step 0. Initialization.////   If FSIN is invoked, set N_inc := 0; else if FCOS is invoked,//   set N_inc := 1.////  Step 1. Check for exceptional and special cases.////   * If Arg is +-0, +-inf, NaN, NaT, go to Step 10 for special//     handling.//   * If |Arg| < 2^24, go to Step 2 for reduction of moderate//     arguments. This is the most likely case.//   * If |Arg| < 2^63, go to Step 8 for pre-reduction of large//     arguments.//   * If |Arg| >= 2^63, go to Step 10 for special handling.////  Step 2. Reduction of moderate arguments.////  If |Arg| < pi/4     ...quick branch//     N_fix := N_inc   (integer)//     r     := Arg//     c     := 0.0//     Branch to Step 4, Case_1_complete//  Else        ...cf. argument reduction//     N     := Arg * two_by_PI (fp)//     N_fix := fcvt.fx( N )    (int)//     N     := fcvt.xf( N_fix )//     N_fix := N_fix + N_inc//     s     := Arg - N * P_1   (first piece of pi/2)//     w     := -N * P_2    (second piece of pi/2)////     If |s| >= 2^(-33)//        go to Step 3, Case_1_reduce//     Else//        go to Step 7, Case_2_reduce//     Endif//  Endif////  Step 3. Case_1_reduce.////  r := s + w//  c := (s - r) + w    ...observe order////  Step 4. Case_1_complete////  ...At this point, the reduced argument alpha is//  ...accurately represented as r + c.//  If |r| < 2^(-3), go to Step 6, small_r.////  Step 5. Normal_r.////  Let [i_0 i_1] by the 2 lsb of N_fix.//  FR_rsq  := r * r//  r_hi := frcpa( frcpa( r ) )//  r_lo := r - r_hi////  If i_1 = 0, then//    poly := r*FR_rsq*(PP_1_lo + FR_rsq*(PP_2 + ... FR_rsq*PP_8))//    U_hi := r + PP_1_hi*r_hi*r_hi*r_hi    ...any order//    U_lo := PP_1_hi*r_lo*(r*r + r*r_hi + r_hi*r_hi)//    correction := c + c*C_1*FR_rsq        ...any order//  Else//    poly := FR_rsq*FR_rsq*(QQ_2 + FR_rsq*(QQ_3 + ... + FR_rsq*QQ_8))//    U_hi := 1 + QQ_1 * r_hi * r_hi        ...any order//    U_lo := QQ_1 * r_lo * (r + r_hi)//    correction := -c*(r + S_1*FR_rsq*r)   ...any order//  Endif////  V := poly + (U_lo + correction) ...observe order////  result := (i_0 == 0?   1.0 : -1.0)////  Last instruction in user-set rounding mode////  result := (i_0 == 0?   result*U_hi + V ://                        result*U_hi - V)////  Return////  Step 6. Small_r.////  ...Use flush to zero mode without causing exception//    Let [i_0 i_1] be the two lsb of N_fix.////  FR_rsq := r * r////  If i_1 = 0 then//     z := FR_rsq*FR_rsq; z := FR_rsq*z *r//     poly_lo := S_3 + FR_rsq*(S_4 + FR_rsq*S_5)//     poly_hi := r*FR_rsq*(S_1 + FR_rsq*S_2)//     correction := c//     result := r//  Else//     z := FR_rsq*FR_rsq; z := FR_rsq*z//     poly_lo := C_3 + FR_rsq*(C_4 + FR_rsq*C_5)//     poly_hi := FR_rsq*(C_1 + FR_rsq*C_2)//     correction := -c*r//     result := 1//  Endif////  poly := poly_hi + (z * poly_lo + correction)////  If i_0 = 1, result := -result////  Last operation. Perform in user-set rounding mode////  result := (i_0 == 0?     result + poly ://                          result - poly )//  Return////  Step 7. Case_2_reduce.////  ...Refer to the write up for argument reduction for//  ...rationale. The reduction algorithm below is taken from//  ...argument reduction description and integrated this.////  w := N*P_3//  U_1 := N*P_2 + w        ...FMA//  U_2 := (N*P_2 - U_1) + w    ...2 FMA//  ...U_1 + U_2 is  N*(P_2+P_3) accurately////  r := s - U_1//  c := ( (s - r) - U_1 ) - U_2////  ...The mathematical sum r + c approximates the reduced//  ...argument accurately. Note that although compared to//  ...Case 1, this case requires much more work to reduce//  ...the argument, the subsequent calculation needed for//  ...any of the trigonometric function is very little because//  ...|alpha| < 1.01*2^(-33) and thus two terms of the//  ...Taylor series expansion suffices.////  If i_1 = 0 then//     poly := c + S_1 * r * r * r  ...any order//     result := r//  Else//     poly := -2^(-67)//     result := 1.0//  Endif////  If i_0 = 1, result := -result////  Last operation. Perform in user-set rounding mode////  result := (i_0 == 0?     result + poly ://                           result - poly )////  Return//////  Step 8. Pre-reduction of large arguments.////  ...Again, the following reduction procedure was described//  ...in the separate write up for argument reduction, which//  ...is tightly integrated here.//  N_0 := Arg * Inv_P_0//  N_0_fix := fcvt.fx( N_0 )//  N_0 := fcvt.xf( N_0_fix)//  Arg' := Arg - N_0 * P_0//  w := N_0 * d_1//  N := Arg' * two_by_PI//  N_fix := fcvt.fx( N )//  N := fcvt.xf( N_fix )//  N_fix := N_fix + N_inc////  s := Arg' - N * P_1//  w := w - N * P_2////  If |s| >= 2^(-14)//     go to Step 3//  Else//     go to Step 9//  Endif////  Step 9. Case_4_reduce.////    ...first obtain N_0*d_1 and -N*P_2 accurately//   U_hi := N_0 * d_1      V_hi := -N*P_2//   U_lo := N_0 * d_1 - U_hi   V_lo := -N*P_2 - U_hi   ...FMAs////   ...compute the contribution from N_0*d_1 and -N*P_3//   w := -N*P_3//   w := w + N_0*d_2//   t := U_lo + V_lo + w       ...any order////   ...at this point, the mathematical value//   ...s + U_hi + V_hi  + t approximates the true reduced argument//   ...accurately. Just need to compute this accurately.////   ...Calculate U_hi + V_hi accurately://   A := U_hi + V_hi//   if |U_hi| >= |V_hi| then//      a := (U_hi - A) + V_hi//   else//      a := (V_hi - A) + U_hi//   endif//   ...order in computing "a" must be observed. This branch is//   ...best implemented by predicates.//   ...A + a  is U_hi + V_hi accurately. Moreover, "a" is//   ...much smaller than A: |a| <= (1/2)ulp(A).////   ...Just need to calculate   s + A + a + t//   C_hi := s + A      t := t + a//   C_lo := (s - C_hi) + A//   C_lo := C_lo + t////   ...Final steps for reduction//   r := C_hi + C_lo//   c := (C_hi - r) + C_lo////   ...At this point, we have r and c//   ...And all we need is a couple of terms of the corresponding//   ...Taylor series.////   If i_1 = 0//      poly := c + r*FR_rsq*(S_1 + FR_rsq*S_2)//      result := r//   Else//      poly := FR_rsq*(C_1 + FR_rsq*C_2)//      result := 1//   Endif////   If i_0 = 1, result := -result////   Last operation. Perform in user-set rounding mode////   result := (i_0 == 0?     result + poly ://                            result - poly )//   Return////   Large Arguments: For arguments above 2**63, a Payne-Hanek//   style argument reduction is used and pi_by_2 reduce is called.//RODATA.align 16LOCAL_OBJECT_START(FSINCOS_CONSTANTS)data4 0x4B800000 // two**24data4 0xCB800000 // -two**24data4 0x00000000 // paddata4 0x00000000 // paddata8 0xA2F9836E4E44152A, 0x00003FFE // Inv_pi_by_2data8 0xC84D32B0CE81B9F1, 0x00004016 // P_0data8 0xC90FDAA22168C235, 0x00003FFF // P_1data8 0xECE675D1FC8F8CBB, 0x0000BFBD // P_2data8 0xB7ED8FBBACC19C60, 0x0000BF7C // P_3data4 0x5F000000 // two**63data4 0xDF000000 // -two**63data4 0x00000000 // paddata4 0x00000000 // paddata8 0xA397E5046EC6B45A, 0x00003FE7 // Inv_P_0data8 0x8D848E89DBD171A1, 0x0000BFBF // d_1data8 0xD5394C3618A66F8E, 0x0000BF7C // d_2data8 0xC90FDAA22168C234, 0x00003FFE // pi_by_4data8 0xC90FDAA22168C234, 0x0000BFFE // neg_pi_by_4data4 0x3E000000 // two**-3data4 0xBE000000 // -two**-3data4 0x00000000 // paddata4 0x00000000 // paddata4 0x2F000000 // two**-33data4 0xAF000000 // -two**-33data4 0x9E000000 // -two**-67data4 0x00000000 // paddata8 0xCC8ABEBCA21C0BC9, 0x00003FCE // PP_8data8 0xD7468A05720221DA, 0x0000BFD6 // PP_7data8 0xB092382F640AD517, 0x00003FDE // PP_6data8 0xD7322B47D1EB75A4, 0x0000BFE5 // PP_5data8 0xFFFFFFFFFFFFFFFE, 0x0000BFFD // C_1data8 0xAAAA000000000000, 0x0000BFFC // PP_1_hidata8 0xB8EF1D2ABAF69EEA, 0x00003FEC // PP_4data8 0xD00D00D00D03BB69, 0x0000BFF2 // PP_3data8 0x8888888888888962, 0x00003FF8 // PP_2data8 0xAAAAAAAAAAAB0000, 0x0000BFEC // PP_1_lodata8 0xD56232EFC2B0FE52, 0x00003FD2 // QQ_8data8 0xC9C99ABA2B48DCA6, 0x0000BFDA // QQ_7data8 0x8F76C6509C716658, 0x00003FE2 // QQ_6data8 0x93F27DBAFDA8D0FC, 0x0000BFE9 // QQ_5data8 0xAAAAAAAAAAAAAAAA, 0x0000BFFC // S_1data8 0x8000000000000000, 0x0000BFFE // QQ_1data8 0xD00D00D00C6E5041, 0x00003FEF // QQ_4data8 0xB60B60B60B607F60, 0x0000BFF5 // QQ_3data8 0xAAAAAAAAAAAAAA9B, 0x00003FFA // QQ_2data8 0xFFFFFFFFFFFFFFFE, 0x0000BFFD // C_1data8 0xAAAAAAAAAAAA719F, 0x00003FFA // C_2data8 0xB60B60B60356F994, 0x0000BFF5 // C_3data8 0xD00CFFD5B2385EA9, 0x00003FEF // C_4data8 0x93E4BD18292A14CD, 0x0000BFE9 // C_5data8 0xAAAAAAAAAAAAAAAA, 0x0000BFFC // S_1data8 0x88888888888868DB, 0x00003FF8 // S_2data8 0xD00D00D0055EFD4B, 0x0000BFF2 // S_3data8 0xB8EF1C5D839730B9, 0x00003FEC // S_4data8 0xD71EA3A4E5B3F492, 0x0000BFE5 // S_5data4 0x38800000 // two**-14data4 0xB8800000 // -two**-14LOCAL_OBJECT_END(FSINCOS_CONSTANTS)// sin and cos registers// FRFR_Input_X        = f8FR_r              = f8FR_c              = f9FR_Two_to_63      = f32FR_Two_to_24      = f33FR_Pi_by_4        = f33FR_Two_to_M14     = f34FR_Two_to_M33     = f35FR_Neg_Two_to_24  = f36FR_Neg_Pi_by_4    = f36FR_Neg_Two_to_M14 = f37FR_Neg_Two_to_M33 = f38FR_Neg_Two_to_M67 = f39FR_Inv_pi_by_2    = f40FR_N_float        = f41FR_N_fix          = f42FR_P_1            = f43FR_P_2            = f44FR_P_3            = f45FR_s              = f46FR_w              = f47FR_d_2            = f48FR_prelim         = f49FR_Z              = f50FR_A              = f51FR_a              = f52FR_t              = f53FR_U_1            = f54FR_U_2            = f55FR_C_1            = f56FR_C_2            = f57FR_C_3            = f58FR_C_4            = f59FR_C_5            = f60FR_S_1            = f61FR_S_2            = f62FR_S_3            = f63FR_S_4            = f64FR_S_5            = f65FR_poly_hi        = f66FR_poly_lo        = f67FR_r_hi           = f68FR_r_lo           = f69FR_rsq            = f70FR_r_cubed        = f71FR_C_hi           = f72FR_N_0            = f73FR_d_1            = f74

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天色 色综合| 久久在线观看免费| 欧美亚洲国产怡红院影院| 精品在线一区二区三区| 天天色综合成人网| 视频一区国产视频| 日韩激情视频在线观看| 秋霞国产午夜精品免费视频| 日韩电影免费在线| 欧美aⅴ一区二区三区视频| 爽爽淫人综合网网站| 久草热8精品视频在线观看| 国产精品一区二区久久不卡| 国产成人午夜99999| 成人av集中营| 欧美日韩视频不卡| 日韩一区二区三区精品视频| 日韩欧美国产综合| 国产欧美精品一区二区色综合 | 欧美挠脚心视频网站| 欧美人狂配大交3d怪物一区| 欧美第一区第二区| 国产精品视频一二三| 亚洲免费大片在线观看| 日韩福利视频网| 国产成人亚洲综合a∨婷婷| 99re热视频精品| 51精品秘密在线观看| 久久久国际精品| 亚洲蜜臀av乱码久久精品| 青娱乐精品在线视频| 成人性视频网站| 欧美午夜片在线观看| 欧美变态凌虐bdsm| 亚洲欧美日韩国产综合在线| 天天综合网天天综合色| 成人一区二区三区视频| 欧美日韩综合不卡| 国产精品欧美一区二区三区| 亚洲不卡一区二区三区| 成人精品电影在线观看| 欧美剧情电影在线观看完整版免费励志电影| 精品1区2区在线观看| 亚洲尤物在线视频观看| 国产精品自拍av| 欧美一区二区日韩一区二区| 国产精品久久99| 久国产精品韩国三级视频| 色欧美片视频在线观看在线视频| 亚洲免费在线视频一区 二区| 日韩av一区二区三区四区| 成人av电影在线播放| 日韩欧美自拍偷拍| 亚洲影视在线播放| 91在线精品一区二区| 久久丝袜美腿综合| 久久爱另类一区二区小说| 欧美日韩国产免费一区二区| 自拍偷拍国产精品| 国产成人精品三级麻豆| 在线不卡免费欧美| 亚洲国产综合视频在线观看| jvid福利写真一区二区三区| 欧美群妇大交群中文字幕| 国产精品久久久久四虎| 国产乱色国产精品免费视频| 91国偷自产一区二区开放时间| 国产精品色婷婷| 国产精品影视在线| 久久久国产午夜精品| 激情综合色丁香一区二区| 欧美精品一卡两卡| 日韩专区一卡二卡| 欧美日韩综合一区| 亚洲v中文字幕| 欧美日韩一本到| 亚洲二区在线观看| 欧美福利一区二区| 视频一区二区中文字幕| 日韩欧美亚洲一区二区| 国模一区二区三区白浆| 欧美精品一区二区精品网| 国产麻豆日韩欧美久久| 久久精品在线免费观看| 波多野结衣中文字幕一区 | 一区二区三区国产精华| 972aa.com艺术欧美| 亚洲一区二区av电影| 欧美日韩中文字幕一区| 青青国产91久久久久久| 久久亚洲精品国产精品紫薇| 国产成人aaa| 亚洲精品视频免费看| 欧美日韩免费在线视频| 蜜臀av性久久久久蜜臀aⅴ流畅 | 日韩一区二区三区在线| 激情都市一区二区| 中文在线资源观看网站视频免费不卡 | 99国产欧美久久久精品| 午夜视频在线观看一区二区| 日韩欧美一区二区视频| 国产成人啪免费观看软件| 综合久久综合久久| 7777精品伊人久久久大香线蕉| 韩国午夜理伦三级不卡影院| 国产精品久久久久一区二区三区| 在线观看日韩电影| 国产在线国偷精品产拍免费yy| 国产精品久久三区| 日韩一区二区在线播放| 成人av免费网站| 蜜臀av性久久久久蜜臀av麻豆| 中文字幕成人网| 69久久99精品久久久久婷婷| 懂色av一区二区三区免费看| 亚洲6080在线| 亚洲国产精品成人综合色在线婷婷 | 亚洲精品va在线观看| 精品少妇一区二区三区视频免付费| 成人精品高清在线| 亚洲精品高清在线观看| 日韩精品中文字幕一区二区三区| av一本久道久久综合久久鬼色| 日本在线不卡视频| 一级日本不卡的影视| 久久亚洲精精品中文字幕早川悠里| 一本一本久久a久久精品综合麻豆| 久99久精品视频免费观看| 一区二区三区四区亚洲| 国产欧美日韩麻豆91| 91麻豆精品91久久久久久清纯| 99视频在线观看一区三区| 久久国产精品露脸对白| 亚洲成人一区二区| 亚洲欧洲日韩女同| 久久久久99精品一区| 日韩精品一区二区三区视频| 欧美体内she精视频| 成人18精品视频| 国产成人免费视频精品含羞草妖精 | 亚洲自拍偷拍麻豆| 中文字幕日韩一区二区| 国产日韩影视精品| 国产亚洲精品福利| 精品欧美乱码久久久久久| 欧美一级欧美一级在线播放| 欧美在线|欧美| 欧美性受极品xxxx喷水| 色综合中文字幕| 99精品黄色片免费大全| 99久久伊人网影院| 成人中文字幕合集| 丰满少妇在线播放bd日韩电影| 黄色日韩网站视频| 国产精品一级二级三级| 国产精品1区2区3区在线观看| 国产精品一区二区免费不卡| 国产精品 欧美精品| 成人午夜免费视频| av不卡一区二区三区| 97精品视频在线观看自产线路二 | 亚洲欧美另类小说| 一区二区三区在线视频播放| 亚洲一区中文日韩| 日本亚洲三级在线| 国产精品一二三四五| 成人av网站在线观看| 色狠狠av一区二区三区| 欧美色电影在线| 欧美mv日韩mv国产网站app| 久久精品视频一区| 亚洲同性同志一二三专区| 亚洲美女视频一区| 亚洲女人的天堂| 午夜在线电影亚洲一区| 久久99国产精品麻豆| 成人综合日日夜夜| 欧美怡红院视频| 久久亚洲一级片| 亚洲免费在线观看视频| 日韩中文欧美在线| 国产高清亚洲一区| 色综合久久88色综合天天| 日韩亚洲欧美一区二区三区| 国产欧美一区二区三区沐欲| 亚洲精品久久嫩草网站秘色| 香蕉久久夜色精品国产使用方法 | 日本人妖一区二区| 成人h精品动漫一区二区三区| 欧美色图免费看| 日韩美一区二区三区| 亚洲视频中文字幕| 久久99国产精品久久99果冻传媒| 不卡视频免费播放| 91精品啪在线观看国产60岁| 中文字幕一区二区视频| 青青草伊人久久| 色呦呦日韩精品| 久久久777精品电影网影网| 亚洲国产成人av网|