99爱在线视频这里只有精品_窝窝午夜看片成人精品_日韩精品久久久毛片一区二区_亚洲一区二区久久

合肥生活安徽新聞合肥交通合肥房產(chǎn)生活服務(wù)合肥教育合肥招聘合肥旅游文化藝術(shù)合肥美食合肥地圖合肥社保合肥醫(yī)院企業(yè)服務(wù)合肥法律

代寫CSE 30程序、代做c/c++編程設(shè)計(jì)

時(shí)間:2023-11-17  來(lái)源:合肥網(wǎng)hfw.cc  作者:hfw.cc 我要糾錯(cuò)


Assignment 6: Floating Point

CSE 30: Computer Organization and Systems, Fall 2023

Instructors: Paul Cao and Bryan Chin

Due: Tuesday Nov 14, 2023

Please read over the entire assignment before starting to get a sense of what you will need to

get done in the next week. REMEMBER: Everyone procrastinates but it is important to know

that you are procrastinating and still leave yourself enough time to finish. Start early, start often.

You MUST run the assignment on the pi-cluster. You HAVE to SSH: You will not be able to

compile or run the assignment otherwise.

ACADEMIC INTEGRITY REMINDER: you should do this assignment on your own.

If you work with others, be sure to cite them in your submission. Never copy from

others.

Please read the FAQ and search the existing questions on Edstem before asking for help.

This reduces the load on the teaching staff, and clutter/duplicate questions on Edstem.

Version updates:

● 1.0 [Nov 8] Final Draft

● 1.1 [Nov 8] Fix midpoint due date Sunday -> Friday

● 1.2 [Nov 9] Fix: somehexnums.txt 0x8000 to 0x4000 since it is 15 bit representation.

● 1.3 [Nov 9] Clarify: style won’t be regraded during resubmission

● 1.4 [Nov 10] Prerelease: Midpoint answers are visible before due date.

● 1.5 [Nov 12] Fix git clone link, fix # of bits in mantissas in page 4 table to be 8 bits

Table of Contents

1. Learning Goals

2. Assignment Overview

3. Getting Started

4. How the Program Works

5. Program Implementation

a. Functions to Implement

b. Developing Your Code

c. Testing Your Code

6. Submission and Grading

a. Submitting

b. Grading Breakdown [50 pts]

Learning Goals

● Programming in ARM assembly

○ Bit masking

○ Function call

○ Branching

● Working with floating point numbers

● Coordinating a program with both ARM assembly and C code (you aren’t writing in C)

Assignment Overview

At the peak of time where pirates and bounty hunters are in the air. Porco Rosso makes his

rounds in the vast ocean to capture any air pirates that disturb the peace near Adriano hotel.

On the radio, Porco Rosso tunes in to listen to his next job, however he discovers an issue. The

coordinates given out are in 15-bit floating-point format. He doesn’t know how to convert from

this format and only knows the standardized IEEE 754 format. Gina only has devices that are

written in ARM so Porco plans to rely on your assembly skills to create the conversion function.

Help him write and test code to convert the coordinates into IEEE format!

A note about representing number literals

In the number 8’b1101_0011:

● 8 is the number of binary bits in this number, in base-10.

● b means binary. Other formats are d for decimal, o for octal, and h for hexadecimal.

● To conserve space, we may also write the bits in hexadecimal, 0xd3 is equivalent to

8’b1101_0011.

● _ is a spacer character that is only there to make it easier to read. It has no numerical

meaning. A '_' is usually placed every four digits.

You can read more about where this number literal representation comes from here. (Note:

Anything past the first slide is irrelevant to this course, but will be useful in CSE 140 & 141.)

The 15-bit FP Format

The 15-bit floating-point format is similar to, but not the same as, the one we studied in class. It

has a sign bit, 6 bits of biased exponent, a bias value of 31 (base-10), and 8 bits of mantissa.

Note that we include special cases to represent infinities and subnormal numbers.

The following figure illustrates the bit assignments:

FP Format (15-bit)

sign

(1 bit)

exponent

(6 bits, bias = 31)

mantissa

(8 bits)

Points to note:

1. There is an implied “1.” in front of the mantissa, unless it is a subnormal number.

2. Subnormal numbers have an exponent field of 6’b000000 which represents 2 and

−30

implies a “0.” in front of the mantissa.

3. “Infinite” numbers have an exponent field equal to 6’b111111 with ANY value in the

mantissa.

The following table shows how to interpret the exponent fields and mantissa fields.

Exponent/mantissa represents Notes

111111/mmmmmmm infinity infinity

111110/mmmmmmm 2^31 x 1.mmmmmmm normal number

111100/mmmmmmm 2^29 x 1.mmmmmmm normal number

111000/mmmmmmm 2^25 x 1.mmmmmmm normal number

100000/mmmmmmm 2^1 x 1.mmmmmmm normal number

011111/mmmmmmm 2^0 x 1.mmmmmmm normal number

001111/mmmmmmm 2^-16 x 1.mmmmmmm normal number

000011/mmmmmmm 2^-28 x 1.mmmmmmm normal number

000001/mmmmmmm 2^-30 x 1.mmmmmmm normal number

000000/mmmmmmm 2^-30 x 0.mmmmmmm subnormal number

(no leading 1)

```````````````````````````````````````````````````````````````````````````````````````````````````````````

Exponent bits are shown in purple below to help you distinguish it from the sign bit and

mantissa.

Number Encoding in 15-bits

+0.0 15’b000_0000_0000_0000 (15 bits of 0 in binary)

-0.0 15’b100_0000_0000_0000

Number `15-Bit

Representation

Binary

Representation

Base-10

Representation

+∞

15’b011_1111_xxxx_xxxx +Inf

-∞

15’b111_1111_xxxx_xxxx -Inf

Most positive # 15’b011_1110_1111_1111 2^31 *

9’b1.11111111

4286578688

Smallest positive

#

(subnormal)

15’b000_0000_0000_0001 2^-30 *

9’b0.00000001

2^-38 ≅

3.637978807e-12

Most negative # 15’b111_1110_1111_1111 -2^31 *

9’b1.11111111

-4286578688

Smallest

negative #

(subnormal)

15’b100_0000_0000_0001 -2^-30 *

9’b0.00000001

-2^-38 ≅

-3.637978807e-1

2

IEEE-754 Single Precision Format

IEEE-754 Single Precision Format

sign

(1 bit)

exponent

(8 bits, bias = 127)

mantissa

(23 bits)

Subnorms

The bias for the IEEE Format is 127 (base-10) and the format uses an implied “1.” for normal

numbers, as usual. The smallest possible exponent is -126 represented by 8’b0000_0001 for

normal numbers, whereas 8’b0000_0000 represents subnormal numbers. For subnormal

numbers, we prepend the mantissa with “0.” instead of “1.” similar to how subnormal numbers

are evaluated in our 15-bit FP format.

Infinities

In IEEE single precision, any exponent of all 1’s (8’b1111_1111) represents a number too

large to represent. For example, 0xff80_0000 is a number with a negative sign bit, all 1’s for

the exponent and all 0’s for the mantissa. This represents negative infinity (-Inf). Similarly,

0x7f80_0000 represents positive infinity (+Inf). Note that the mantissa bits are all 0. Non-0

mantissa bits represent another kind of IEEE special number (NaN, “not a number”) which is not

required in this assignment since our 15-bit floating point format does not use NaN.

Summary of Select Conversions

FP 15-bit FP IEEE-754 Single

+0 15’b000_0000_0000_0000 0x00000000

-0 15’b100_0000_0000_0000 0x80000000

2^-38 15’b000_0000_0000_0001 0x2c800000

-2^-38 15’b100_0000_0000_0001 0xac800000

4286578688 15’b011_1110_1111_1111 0x4f7f8000

-4286578688 15’b111_1110_1111_1111 0xcf7f8000

+Inf 15’b011_1111_xxxx_xxxx 0x7f800000

-Inf 15’b111_1111_xxxx_xxxx 0xff800000

Getting Started

Developing Your Program

For this class, you MUST compile and run your programs on the pi-cluster.

Need help or instructions? See the Edstem FAQ. (Do NOT wait until the end to try this. There

will be limited or no ETS support on the weekends!)

We’ve provided you with the starter code at the following link:

https://github.com/cse30-fa23/hw6-starter

1. Download the files in the repository.

a. You can either use

git clone https://github.com/cse30-fa23/hw6-starter.git

directly from pi-cluster, or download the repo locally and scp the folder to

pi-cluster if that doesn’t work.

2. Fill out the fields in the README before turning in.

Running Your Program

We’ve provided you with a Makefile so compiling your program should be easy!

Additionally, the reference solution binary will be placed on Saturday 11/11 morning at:

/home/linux/ieng6/cs30fa23/public/bin/fpconvert-a6-ref

Makefile: The Makefile provided will create a fpconvert executable from the source files

provided. Compile it by typing make into the terminal. Run make clean to remove files

generated by make.

How the Program Works

Your program will take a filename as an argument and read it in. This file is a txt file storing the

15 bit FP numbers. The main function (implemented for you in main.c) will parse the input file

and call the fpconvert function which you will implement in assembly on each 15-bit FP

number to convert it into IEEE floating point format, and print the result to stdout.

Once you compiled the program with make, you can run it as follows:

./fpconvert somehexnums.txt

where somehexnums.txt is the name of the input txt file that holds the hex numbers you

want to convert.

Input Guarantees

● fpconvert will be only given valid 15-bit wide numbers.

Program Implementation

Files to Edit

You need to edit fpconvert.S and convert_inf.S

Functions to Implement

You will need to implement 1 function within fpconvert.S:

● fpconvert(n): This is the function that will do most of the floating-point conversion.

○ Argument: n the 15-bit FP number to convert

○ Returns: n’s equivalent IEEE 754 single precision representation.

○ If n is ±infinity, you MUST call convert_infinity(n) to do the conversion

instead.

You need to implement 1 function within convert_inf.S

● convert_infinity(n):

○ Argument: n the 15-bit FP number to convert (should only be ±infinity)

○ Returns: the FP number’s equivalent IEEE 754 single precision representation.

NOTE:

● **-bit ARM stores arguments passed into the function in registers r0-r3; n only

symbolizes that the function takes in one argument. You cannot directly use n in your

assembly program to refer to the first argument.

● As registers are all **-bits wide, our 15-bit floating point format will always only occupy

the least significant 15 bits, the upper 17 bits will be padded with 0’s.

● Return value should be stored in r0.

Calling a Function in ARM

To call a function in ARM, you must use the bl “branch and link” instruction. It is not sufficient

or correct to use a regular branch instruction. Without branch-and-link, the return operations in

the epilogue of the function will not work and return as expected.

Developing Your Code

Development Process

To make development easier, you should first implement the conversion of normal numbers.

Test your code on a range of normal numbers (smallest, largest). For the smallest numbers, you

should familiarize yourself with their scientific notation representations. You can also check the

IEEE column of the output to see if it matches the expected IEEE version. Additionally, be sure

to check the special cases of +0.0, -0.0, +Inf, and -Inf.

After thoroughly testing the functionality of your code, you should consider subnormal numbers.

Subnormal numbers are represented when the exponent field is 6’b000000.

After implementing the conversion of subnormal numbers, your code should be able to produce

all of the values in the Summary of Select Conversions table.

Development Tips

Before you write assembly code, think about the algorithm.

● How are the 15-bit format and the **-bit IEEE format similar and different?

● How do I break down the 15-bit format into the 3 individual fields?

● How does each field convert from the 15-bit format to the **-bit IEEE format?

You should find the bitwise instructions useful for this assignment. In particular, you will want to

make use of bitmasks.

While an immediate can only be 8 bits wide, you can use left and right shifts to move the mask

into the right position. For example, if you need the bitmask 0xFF00, you can shift the

immediate 0xFF left by 8 bits.

Testing your Code

To run your code you need a txt file that holds the hex numbers that you want to convert,

separated by a new line.

Example text input file, named somehexnums.txt:

0x0000

0x4000

0x3f00

0x7f00

0x3eff

0x0001

0x7eff

0x4001

NOTE: you should make sure each hexadecimal number only has four digits, otherwise you

may get unexpected results.

Checking For Exact Output Match

A common technique is to redirect the outputs to files and compare against the reference

solution

1

:

./your-program args > output; our-reference args > ref

diff -s output ref

This command will output lines that differ with a < or > in front to tell which file the line came

from.

Debugging Tips

The public autograder will only printf test some features. DO NOT RELY ON THE

AUTOGRADER. (Many CSE 30 students have been burned by this.) Test your code using your

own test cases!

GDB treats ARM assembly labels as functions except those that begin with the prefix “.L”. If

you want to use GDB to debug your ARM code, you will need to prefix your labels with “.L”.

1 You might want to check out vimdiff on the pi-cluster (https://www.tutorialspoint.com/vim/vim_diff.htm).

Thus, ARM code for the given C if statement would look like the code snippet on the right, rather

than the snippet on the left.

if (r5 == 99) {

r3 = r3 + 2;

} else {

r3 = r3 + 3;

}

r4 = r4 - 1;

GDB will not recognize labels: GDB will recognize labels:

cmp r5, 99

bne else

add r3, r3, 2

B end_if

else:

add r3, r3, 3

end_if:

sub r4, r4, 1

cmp r5, 99

bne .Lelse

add r3, r3, 2

b .Lend_if

.Lelse:

add r3, r3, 3

.Lend_if:

sub r4, r4, 1

Allowed ARM Instructions

You are only allowed to use the instructions provided in the ARM ISA Green Card. Failure to

comply will result in a score of 0 on the assignment.

Style Requirements

Reading raw assembly is hard and debugging will be nigh impossible if you don’t put comments!

To encourage you to make your life easier, style will be worth 2 points in this assignment on a

holistic readable/unreadable basis. You will get full style points as long as your code is

reasonably commented to be readable (so that someone who doesn’t know ARM can still

roughly understand what it’s doing), so don’t worry if you can’t get all the details right. However,

you will get no style points if it’s not (e.g. very inconsistent indentation, sparse or unreadable

comments). In addition, staff won't be able to provide any assistance other than styling

advice unless code is readable. For reference, here is the Style Guideline for ARM assembly.

We strongly recommend you to use comments after each instruction to help describe what

step occurs like what is done in the style guide. Note: style will not be graded for

resubmission.

Midpoint (5 Points)

This part of the assignment is due earlier than the full assignment, on

Friday 11/10 at 11:59 pm PST. There are no late submissions on the

Midpoint.

Complete the Gradescope assignment “HW6: Checkpoint”, an Online Assignment that is done

entirely through Gradescope. This assignment consists of a few quiz questions and a

free-response question where you will document your algorithm in plain English or C code.

Discuss your implementations of the following functions: fpconvert and

convert_infinity. Your fpconvert should call convert_infinity when appropriate.

Submission and Grading

Submitting

1. Submit your files to Gradescope under the assignment titled “HW6 (Coding): Floating

Point”. You will submit ONLY the following files:

fpconvert.S

convert_inf.S

README.md

Submission will open by Saturday morning. You should test your code extensively on

pi-cluster before submitting to gradescope.

You can upload multiple files to Gradescope by holding CTRL (⌘ on a Mac) while you

are clicking the files. You can also hold SHIFT to select all files between a start point

and an endpoint.

Alternatively, you can place all files in a folder and upload the folder to the assignment.

Gradescope will upload all files in the folder. You can also zip all of the files and upload

the .zip to the assignment. Ensure that the files you submit are not in a nested folder.

2. After submitting, the autograder will run a few tests:

a. Check that all required files were submitted.

b. Check that fpconvert.S and convert_inf.S compiles.

c. Runs some sanity tests on the resulting fpconvert executable.

Grading Breakdown [5 + 45 points]

Make sure to check the autograder output after submitting! We will be running

additional tests after the deadline passes to determine your final grade. Also, throughout this

course, make sure to write your own test cases. It is bad practice to rely on the minimal

public autograder tests as this is an insufficient test of your program.

To encourage you to write your own tests, we are not providing any public tests that have

not already been detailed in this writeup.

The assignment will be graded out of 50 points and will be allocated as follows:

● Midpoint writeup: 5 points. This part of the assignment is due earlier than the full

assignment, on Friday 11/10. Complete the Gradescope assignment “Homework 6:

Checkpoint”.

● Code compiles with no warnings: 1 point

● Style: 2 points

● Public tests with the provided examples.

● Private tests with hidden test cases.

NOTE: The tests expect an EXACT output match with the reference binary. There will be

NO partial credit for any differences in the output. Test your code - do NOT rely on the

autograder for program validation.

Make sure your assignment compiles correctly through the provided Makefile on the

pi-cluster without warnings. Any assignment that does not compile will receive 0 credit.

[Optional] Bells and Whistles

2

(epsilon points)

Write a new function add_fp(a, b) that takes in 2 numbers a and b that are in the 15-bit

floating point format. It should add these 2 numbers together and return the value. However,

what makes this complicated is that a and b may not have the same exponent! You’ll need to

make the exponents the same first before you can add them.

This part of the assignment will NOT be graded - and does not need to be submitted. It is

completely up to you to try writing a program which achieves the above output.

The Bells and Whistles component may be submitted to a separate Gradescope assignment:

Homework 6 Optional: Bells and Whistles.

2

In our experience, students like extra credit. However, we find that extra credit isn't used by students

who need it the most. Thus, we have an extra credit where the number of points assigned is epsilon,

where epsilon is a very small number [0, 1).

 

請(qǐng)加QQ:99515681 或郵箱:99515681@qq.com   WX:codehelp

 

掃一掃在手機(jī)打開(kāi)當(dāng)前頁(yè)
  • 上一篇:MATH4063代做、代寫C++編程設(shè)計(jì)
  • 下一篇:代寫MATH36031、代做MATLAB編程設(shè)計(jì)
  • 無(wú)相關(guān)信息
    合肥生活資訊

    合肥圖文信息
    急尋熱仿真分析?代做熱仿真服務(wù)+熱設(shè)計(jì)優(yōu)化
    急尋熱仿真分析?代做熱仿真服務(wù)+熱設(shè)計(jì)優(yōu)化
    出評(píng) 開(kāi)團(tuán)工具
    出評(píng) 開(kāi)團(tuán)工具
    挖掘機(jī)濾芯提升發(fā)動(dòng)機(jī)性能
    挖掘機(jī)濾芯提升發(fā)動(dòng)機(jī)性能
    海信羅馬假日洗衣機(jī)亮相AWE  復(fù)古美學(xué)與現(xiàn)代科技完美結(jié)合
    海信羅馬假日洗衣機(jī)亮相AWE 復(fù)古美學(xué)與現(xiàn)代
    合肥機(jī)場(chǎng)巴士4號(hào)線
    合肥機(jī)場(chǎng)巴士4號(hào)線
    合肥機(jī)場(chǎng)巴士3號(hào)線
    合肥機(jī)場(chǎng)巴士3號(hào)線
    合肥機(jī)場(chǎng)巴士2號(hào)線
    合肥機(jī)場(chǎng)巴士2號(hào)線
    合肥機(jī)場(chǎng)巴士1號(hào)線
    合肥機(jī)場(chǎng)巴士1號(hào)線
  • 短信驗(yàn)證碼 豆包 幣安下載 AI生圖 目錄網(wǎng)

    關(guān)于我們 | 打賞支持 | 廣告服務(wù) | 聯(lián)系我們 | 網(wǎng)站地圖 | 免責(zé)聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網(wǎng) 版權(quán)所有
    ICP備06013414號(hào)-3 公安備 42010502001045

    99爱在线视频这里只有精品_窝窝午夜看片成人精品_日韩精品久久久毛片一区二区_亚洲一区二区久久

          9000px;">

                国产精品九色蝌蚪自拍| 天堂一区二区在线| 视频一区国产视频| 欧美一区二区三区视频免费| 亚洲成人av资源| 日韩限制级电影在线观看| 国产精一品亚洲二区在线视频| 国产日韩欧美综合在线| 91亚洲男人天堂| 欧美激情一区二区在线| 九一久久久久久| 欧美日韩色一区| 韩国一区二区在线观看| 国产精品萝li| 91麻豆精品久久久久蜜臀| 久久成人免费网| 亚洲日本成人在线观看| 欧美一区二区三区在线电影| 成人在线一区二区三区| 午夜免费久久看| 中文在线资源观看网站视频免费不卡| 在线观看视频一区二区欧美日韩| 精品一区二区久久| 亚洲女人的天堂| 久久婷婷久久一区二区三区| 欧美三级乱人伦电影| 国产jizzjizz一区二区| 亚洲精品日韩一| 久久久精品2019中文字幕之3| 欧美日韩在线播放一区| av在线一区二区三区| 麻豆精品视频在线观看视频| 一区二区三区产品免费精品久久75| 精品国产乱码久久久久久蜜臀| 在线免费不卡电影| 成人黄色软件下载| 国产一区二区伦理| 久久国产麻豆精品| 全部av―极品视觉盛宴亚洲| 亚洲狠狠丁香婷婷综合久久久| 中文字幕乱码久久午夜不卡| 欧美精品一区二区三区蜜桃| 欧美精品电影在线播放| 色88888久久久久久影院野外| 成人在线一区二区三区| 国产福利91精品一区二区三区| 蜜桃一区二区三区在线| 日本在线不卡视频| 香蕉成人啪国产精品视频综合网| 一区二区三区四区在线| 樱桃国产成人精品视频| 中文字幕在线观看不卡视频| 国产精品嫩草久久久久| 国产精品成人在线观看| 一区在线观看免费| 中文字幕一区二区日韩精品绯色| 久久婷婷一区二区三区| 国产拍欧美日韩视频二区| 久久精品水蜜桃av综合天堂| 欧美精品一区二区在线播放| 亚洲精品在线电影| 欧美经典三级视频一区二区三区| 国产精品三级在线观看| 亚洲同性同志一二三专区| 亚洲三级在线免费观看| 艳妇臀荡乳欲伦亚洲一区| 亚洲精品高清在线观看| 一区二区三区四区国产精品| 午夜精品久久久久久久久| 日本成人中文字幕在线视频| 日本欧美肥老太交大片| 久久精品99国产国产精| 国产成人午夜精品影院观看视频| 99视频在线观看一区三区| 91福利资源站| 精品成人一区二区三区四区| 国产欧美精品一区二区色综合 | 国产风韵犹存在线视精品| 成人av在线播放网址| 欧美喷潮久久久xxxxx| 久久久久国产精品厨房| 亚洲精品一二三四区| 狂野欧美性猛交blacked| www.亚洲免费av| 7777精品伊人久久久大香线蕉最新版| 久久久久久久久久久久久久久99| 《视频一区视频二区| 日韩高清在线观看| jizz一区二区| 26uuu精品一区二区| 亚洲视频电影在线| 国产一区二区三区在线看麻豆| 不卡在线观看av| 日韩欧美在线一区二区三区| 亚洲欧洲日产国码二区| 老司机精品视频线观看86| 色综合久久久久综合| 精品99久久久久久| 亚洲精品精品亚洲| 成人精品国产福利| 日韩一级片在线观看| 亚洲视频在线观看一区| 久久精品72免费观看| 欧洲在线/亚洲| 久久久综合视频| 裸体健美xxxx欧美裸体表演| 欧美性一区二区| 中文字幕制服丝袜成人av| 国产美女娇喘av呻吟久久| 9191成人精品久久| 一区二区在线观看视频| 国产99精品国产| www日韩大片| 老汉av免费一区二区三区| 欧美亚洲一区二区在线观看| 国产精品欧美一级免费| 久热成人在线视频| 精品免费日韩av| 另类中文字幕网| 日韩欧美电影在线| 秋霞午夜鲁丝一区二区老狼| 欧美日韩国产免费| 亚洲图片欧美视频| 在线亚洲欧美专区二区| 亚洲精品国产a| 色视频欧美一区二区三区| 中文字幕一区二区三区不卡| 成人av在线一区二区| 国产精品乱人伦中文| 成人免费观看视频| 国产精品萝li| 91亚洲精品一区二区乱码| 亚洲美女在线国产| 日本韩国欧美在线| 亚洲国产一区二区三区青草影视| 欧美午夜不卡在线观看免费| 亚洲第一激情av| 91精品在线观看入口| 日日摸夜夜添夜夜添精品视频| 欧美久久久久久蜜桃| 毛片av一区二区| 久久久久久久久久久久久久久99| 国产精品一区二区在线观看网站| 国产亚洲精品7777| 99久久精品免费看国产| 亚洲一区二区视频在线观看| 不卡欧美aaaaa| 亚洲精品成人精品456| 欧美日韩国产高清一区二区三区 | 国产一区二区三区观看| 国产日本欧美一区二区| 99国产麻豆精品| 亚洲超碰精品一区二区| 精品久久久三级丝袜| 成人黄色网址在线观看| 亚洲国产日韩a在线播放性色| 91精品国产91久久久久久一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产日韩欧美一区二区三区综合| 成人免费精品视频| 首页国产欧美日韩丝袜| 久久久www成人免费无遮挡大片| 一本色道久久综合亚洲aⅴ蜜桃 | 欧美日韩精品电影| 激情伊人五月天久久综合| 一区二区三区四区在线免费观看| 精品日韩一区二区三区| 欧美性淫爽ww久久久久无| 国产精品影视在线| 日韩精品电影在线观看| 国产精品成人午夜| 2024国产精品| 欧美日韩综合一区| 99精品欧美一区二区三区综合在线| 青草国产精品久久久久久| 亚洲精品成人精品456| 国产午夜亚洲精品午夜鲁丝片| 欧美日韩免费高清一区色橹橹| 国产suv精品一区二区883| 日本v片在线高清不卡在线观看| 亚洲欧美视频在线观看视频| 久久精品一区二区三区不卡牛牛| 欧美高清视频一二三区 | 久久99深爱久久99精品| 一区二区三区四区五区视频在线观看| 欧美精品一区二区在线播放| 欧美精品乱码久久久久久按摩| 99国产一区二区三精品乱码| 国产成人精品亚洲777人妖| 日本中文一区二区三区| 亚洲国产cao| 亚洲成人激情综合网| 一区二区视频在线看| 1000精品久久久久久久久| 国产精品入口麻豆原神| 久久精品一区二区三区不卡| 精品国产91洋老外米糕| 久久在线免费观看| 久久久精品免费观看| 国产视频一区二区在线|