Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Implement the internal featurecfg_target_has_reliable_f16_f128#140323

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
bors merged 2 commits intorust-lang:masterfromtgross35:cfg-unstable-float
Apr 29, 2025

Conversation

@tgross35
Copy link
Contributor

@tgross35tgross35 commentedApr 26, 2025
edited
Loading

Support forf16 andf128 is varied across targets, backends, and backend versions. Eventually we would like to reach a point where all backends support these approximately equally, but until then we have to work around some of these nuances of support being observable.

Introduce thecfg_target_has_reliable_f16_f128 internal feature, which provides the following new configuration gates:

  • cfg(target_has_reliable_f16)
  • cfg(target_has_reliable_f16_math)
  • cfg(target_has_reliable_f128)
  • cfg(target_has_reliable_f128_math)

reliable_f16 andreliable_f128 indicate that basic arithmetic for the type works correctly. The_math versions indicate that anything relying onlibm works correctly, since sometimes this hits a separate class of codegen bugs.

These options match configuration set by the build script at1. The logic for LLVM support is duplicated as-is from the same script. There are a few possible updates that will come as a follow up.

The config introduced here is not planned to ever become stable, it is only intended to replace the build scripts forstd tests andcompiler-builtins that don't have any way to configure based on the codegen backend.

MCP:rust-lang/compiler-team#866
Closes:rust-lang/compiler-team#866


The second commit makes use of this config to replacecfg_{f16,f128}{,_math} inlibrary/. I omitted providing acfg(bootstrap) configuration to keep things simpler since the next beta branch is in two weeks.

try-job: aarch64-gnu
try-job: i686-msvc-1
try-job: test-various
try-job: x86_64-gnu
try-job: x86_64-msvc-ext2

r?@ghost

@rustbotrustbot added S-waiting-on-reviewStatus: Awaiting review from the assignee but also interested parties. T-compilerRelevant to the compiler team, which will review and decide on the PR/issue. labelsApr 26, 2025
@rust-log-analyzer

This comment has been minimized.

@tgross35tgross35 added the rla-silencedSilences rust-log-analyzer postings to the PR it's added on. labelApr 26, 2025
@tgross35tgross35force-pushed thecfg-unstable-float branch 2 times, most recently from98cf08a toe7fb9c5CompareApril 26, 2025 06:17
@tgross35
Copy link
ContributorAuthor

@bors try

bors added a commit to rust-lang-ci/rust that referenced this pull requestApr 26, 2025
Implement the internal feature `cfg_target_has_reliable_f16_f128`Support for `f16` and `f128` is varied across targets, backends, and backend versions. Eventually we would like to reach a point where all backends support these approximately equally, but until then we have to work around some of these nuances of support being observable.Introduce the `target_has_reliable_f16_f128` configuration option, gated behind `cfg_target_has_reliable_f16_f128`, as an indicator for whether or not the backend supports these types to a point that they can and should be tested. The configuration mostly follows the logic used by `target_feature`, and similarly takes a value:    #[cfg(target_has_reliable_f16_f128 = "f16")]Accepted values are:* `f16`* `f16-math`* `f128`* `f128-math``f16` and `f128` indicate that basic arithmetic for the type works correctly. The `-math` versions indicate that anything relying on `libm` works correctly, since sometimes this hits a separate class of codegen bugs.These options match configuration set by the build script at [1]. The logic for LLVM support is duplicated as-is from the same script. There are a few possible updates that will come as a follow up.The config introduced here is not intended to ever become stable, it is only intended to replace the build scripts for `std` tests and in `compiler-builtins` that don't have any way to set configuration based on the codegen backend.MCP:rust-lang/compiler-team#866Closes:rust-lang/compiler-team#866[1]:https://github.com/rust-lang/rust/blob/555e1d0386f024a8359645c3217f4b3eae9be042/library/std/build.rs#L84-L186---The second commit makes use of this config to replace `cfg_{f16,f128}{,_math}` in `library/`.try-job: aarch64-gnutry-job: i686-msvc-1try-job: test-varioustry-job: x86_64-gnutry-job: x86_64-msvc-ext2
@bors
Copy link
Collaborator

⌛ Trying commite7fb9c5 with merge4055b73...

@tgross35tgross35 marked this pull request as ready for reviewApril 26, 2025 06:42
@rustbot
Copy link
Collaborator

Some changes occurred in compiler/rustc_codegen_ssa

cc@WaffleLapkin

Some changes occurred in compiler/rustc_codegen_cranelift

cc@bjorn3

Some changes occurred in cfg and check-cfg configuration

cc@Urgau

Some changes occurred in compiler/rustc_codegen_gcc

cc@antoyo,@GuillaumeGomez

@tgross35
Copy link
ContributorAuthor

r? compiler

Cc@bjorn3@antoyo since this touches the backend interfaces.

@tgross35tgross35 added the F-f16_and_f128`#![feature(f16)]`, `#![feature(f128)]` labelApr 26, 2025
@rustbot
Copy link
Collaborator

Some changes occurred in src/doc/rustc/src/check-cfg.md

cc@Urgau

@tgross35
Copy link
ContributorAuthor

Hm... I think I'm actually leaning toward four separate key-onlycfg options here rather than a single key with multiple values. I don't think the current version works as-well, it's a bit bulky and redundant withf16_f128 in the name.

Will change it over tomorrow unless anyone has a stronger preference.

@rustbot author

@rustbotrustbot added S-waiting-on-authorStatus: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-reviewStatus: Awaiting review from the assignee but also interested parties. labelsApr 26, 2025
@rustbot
Copy link
Collaborator

Reminder, once the PR becomes ready for a review, use@rustbot ready.

@tgross35tgross35force-pushed thecfg-unstable-float branch 2 times, most recently fromb1025c9 to5abd112CompareApril 26, 2025 20:14
@tgross35
Copy link
ContributorAuthor

Changed so this is split across four differentcfg options.

@rustbot review

@rustbotrustbot added S-waiting-on-reviewStatus: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-authorStatus: This is awaiting some action (such as code changes or more information) from the author. labelsApr 26, 2025
Urgau
Urgau previously requested changesApr 27, 2025
@tgross35tgross35force-pushed thecfg-unstable-float branch 2 times, most recently fromac61743 to304739dCompareApril 27, 2025 17:41
@tgross35
Copy link
ContributorAuthor

tgross35 commentedApr 27, 2025
edited
Loading

Since you have already started taking a look,

r?@Urgau

ChrisDenton added a commit to ChrisDenton/rust that referenced this pull requestApr 28, 2025
Implement the internal feature `cfg_target_has_reliable_f16_f128`Support for `f16` and `f128` is varied across targets, backends, and backend versions. Eventually we would like to reach a point where all backends support these approximately equally, but until then we have to work around some of these nuances of support being observable.Introduce the `cfg_target_has_reliable_f16_f128` internal feature, which provides the following new configuration gates:* `cfg(target_has_reliable_f16)`* `cfg(target_has_reliable_f16_math)`* `cfg(target_has_reliable_f128)`* `cfg(target_has_reliable_f128_math)``reliable_f16` and `reliable_f128` indicate that basic arithmetic for the type works correctly. The `_math` versions indicate that anything relying on `libm` works correctly, since sometimes this hits a separate class of codegen bugs.These options match configuration set by the build script at [1]. The logic for LLVM support is duplicated as-is from the same script. There are a few possible updates that will come as a follow up.The config introduced here is not planned to ever become stable, it is only intended to replace the build scripts for `std` tests and `compiler-builtins` that don't have any way to configure based on the codegen backend.MCP:rust-lang/compiler-team#866Closes:rust-lang/compiler-team#866[1]:https://github.com/rust-lang/rust/blob/555e1d0386f024a8359645c3217f4b3eae9be042/library/std/build.rs#L84-L186---The second commit makes use of this config to replace `cfg_{f16,f128}{,_math}` in `library/`. I omitted providing a `cfg(bootstrap)` configuration to keep things simpler since the next beta branch is in two weeks.try-job: aarch64-gnutry-job: i686-msvc-1try-job: test-varioustry-job: x86_64-gnutry-job: x86_64-msvc-ext2
bors added a commit to rust-lang-ci/rust that referenced this pull requestApr 28, 2025
…entonRollup of 10 pull requestsSuccessful merges: -rust-lang#139308 (add autodiff inline) -rust-lang#139656 (Stabilize `slice_as_chunks` library feature) -rust-lang#140022 (allow deref patterns to move out of boxes) -rust-lang#140276 (Do not compute type_of for impl item if impl where clauses are unsatisfied) -rust-lang#140302 (Move inline asm check to typeck, properly handle aliases) -rust-lang#140323 (Implement the internal feature `cfg_target_has_reliable_f16_f128`) -rust-lang#140391 (Rename sub_ptr to offset_from_unsigned in docs) -rust-lang#140394 (Make bootstrap git tests more self-contained) -rust-lang#140396 (Workaround for windows-gnu rust-lld test failure) -rust-lang#140402 (only return nested goals for `Certainty::Yes`)Failed merges: -rust-lang#139765 ([beta] Delay `hash_extract_if` stabilization from 1.87 to 1.88)r? `@ghost``@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull requestApr 29, 2025
…entonRollup of 10 pull requestsSuccessful merges: -rust-lang#139308 (add autodiff inline) -rust-lang#139656 (Stabilize `slice_as_chunks` library feature) -rust-lang#140022 (allow deref patterns to move out of boxes) -rust-lang#140276 (Do not compute type_of for impl item if impl where clauses are unsatisfied) -rust-lang#140302 (Move inline asm check to typeck, properly handle aliases) -rust-lang#140323 (Implement the internal feature `cfg_target_has_reliable_f16_f128`) -rust-lang#140391 (Rename sub_ptr to offset_from_unsigned in docs) -rust-lang#140394 (Make bootstrap git tests more self-contained) -rust-lang#140396 (Workaround for windows-gnu rust-lld test failure) -rust-lang#140402 (only return nested goals for `Certainty::Yes`)r? `@ghost``@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull requestApr 29, 2025
[experiment] reliable float experimentsTrying a few blocked things based on top ofrust-lang#140323.r? `@ghost`try-job: aarch64-gnutry-job: i686-gnu-1try-job: i686-msvc-1try-job: test-varioustry-job: x86_64-gnutry-job: x86_64-msvc-ext2
bors added a commit to rust-lang-ci/rust that referenced this pull requestApr 29, 2025
[experiment] reliable float experimentsTrying a few blocked things based on top ofrust-lang#140323.r? `@ghost`try-job: x86_64-gnu-llvm-19-1try-job: x86_64-gnu-llvm-20-1
bors added a commit to rust-lang-ci/rust that referenced this pull requestApr 29, 2025
[experiment] reliable float experimentsTrying a few blocked things based on top ofrust-lang#140323.r? `@ghost`try-job: aarch64-gnutry-job: i686-gnu-1try-job: i686-msvc-1try-job: test-varioustry-job: x86_64-gnutry-job: x86_64-msvc-ext2try-job: x86_64-gnu-llvm-19-1try-job: x86_64-gnu-llvm-20-1
bors added a commit to rust-lang-ci/rust that referenced this pull requestApr 29, 2025
[experiment] reliable float experimentsTrying a few blocked things based on top ofrust-lang#140323.r? `@ghost`try-job: aarch64-gnutry-job: i686-gnu-1try-job: i686-msvc-1try-job: test-varioustry-job: x86_64-gnutry-job: x86_64-msvc-ext2try-job: x86_64-gnu-llvm-19-1try-job: x86_64-gnu-llvm-20-1
@borsbors merged commite082bf3 intorust-lang:masterApr 29, 2025
7 checks passed
@rustbotrustbot added this to the1.88.0 milestoneApr 29, 2025
rust-timer added a commit to rust-lang-ci/rust that referenced this pull requestApr 29, 2025
Rollup merge ofrust-lang#140323 - tgross35:cfg-unstable-float, r=UrgauImplement the internal feature `cfg_target_has_reliable_f16_f128`Support for `f16` and `f128` is varied across targets, backends, and backend versions. Eventually we would like to reach a point where all backends support these approximately equally, but until then we have to work around some of these nuances of support being observable.Introduce the `cfg_target_has_reliable_f16_f128` internal feature, which provides the following new configuration gates:* `cfg(target_has_reliable_f16)`* `cfg(target_has_reliable_f16_math)`* `cfg(target_has_reliable_f128)`* `cfg(target_has_reliable_f128_math)``reliable_f16` and `reliable_f128` indicate that basic arithmetic for the type works correctly. The `_math` versions indicate that anything relying on `libm` works correctly, since sometimes this hits a separate class of codegen bugs.These options match configuration set by the build script at [1]. The logic for LLVM support is duplicated as-is from the same script. There are a few possible updates that will come as a follow up.The config introduced here is not planned to ever become stable, it is only intended to replace the build scripts for `std` tests and `compiler-builtins` that don't have any way to configure based on the codegen backend.MCP:rust-lang/compiler-team#866Closes:rust-lang/compiler-team#866[1]:https://github.com/rust-lang/rust/blob/555e1d0386f024a8359645c3217f4b3eae9be042/library/std/build.rs#L84-L186---The second commit makes use of this config to replace `cfg_{f16,f128}{,_math}` in `library/`. I omitted providing a `cfg(bootstrap)` configuration to keep things simpler since the next beta branch is in two weeks.try-job: aarch64-gnutry-job: i686-msvc-1try-job: test-varioustry-job: x86_64-gnutry-job: x86_64-msvc-ext2
@tgross35tgross35 deleted the cfg-unstable-float branchApril 29, 2025 05:37
tgross35 added a commit to tgross35/rust that referenced this pull requestApr 29, 2025
Zalathar added a commit to Zalathar/rust that referenced this pull requestApr 29, 2025
…, r=jieyouxuUpdate documentation for `fn target_config`This was missed as part of [1].[1]:rust-lang#140323
tgross35 added a commit to tgross35/rust that referenced this pull requestApr 29, 2025
…, r=jieyouxuUpdate documentation for `fn target_config`This was missed as part of [1].[1]:rust-lang#140323
rust-timer added a commit to rust-lang-ci/rust that referenced this pull requestApr 29, 2025
Rollup merge ofrust-lang#140432 - tgross35:target-config-docs-update, r=jieyouxuUpdate documentation for `fn target_config`This was missed as part of [1].[1]:rust-lang#140323
github-actionsbot pushed a commit to model-checking/verify-rust-std that referenced this pull requestMay 9, 2025
Implement the internal feature `cfg_target_has_reliable_f16_f128`Support for `f16` and `f128` is varied across targets, backends, and backend versions. Eventually we would like to reach a point where all backends support these approximately equally, but until then we have to work around some of these nuances of support being observable.Introduce the `cfg_target_has_reliable_f16_f128` internal feature, which provides the following new configuration gates:* `cfg(target_has_reliable_f16)`* `cfg(target_has_reliable_f16_math)`* `cfg(target_has_reliable_f128)`* `cfg(target_has_reliable_f128_math)``reliable_f16` and `reliable_f128` indicate that basic arithmetic for the type works correctly. The `_math` versions indicate that anything relying on `libm` works correctly, since sometimes this hits a separate class of codegen bugs.These options match configuration set by the build script at [1]. The logic for LLVM support is duplicated as-is from the same script. There are a few possible updates that will come as a follow up.The config introduced here is not planned to ever become stable, it is only intended to replace the build scripts for `std` tests and `compiler-builtins` that don't have any way to configure based on the codegen backend.MCP:rust-lang/compiler-team#866Closes:rust-lang/compiler-team#866[1]:https://github.com/rust-lang/rust/blob/555e1d0386f024a8359645c3217f4b3eae9be042/library/std/build.rs#L84-L186---The second commit makes use of this config to replace `cfg_{f16,f128}{,_math}` in `library/`. I omitted providing a `cfg(bootstrap)` configuration to keep things simpler since the next beta branch is in two weeks.try-job: aarch64-gnutry-job: i686-msvc-1try-job: test-varioustry-job: x86_64-gnutry-job: x86_64-msvc-ext2
bjorn3 pushed a commit to bjorn3/rust that referenced this pull requestMay 25, 2025
Implement the internal feature `cfg_target_has_reliable_f16_f128`Support for `f16` and `f128` is varied across targets, backends, and backend versions. Eventually we would like to reach a point where all backends support these approximately equally, but until then we have to work around some of these nuances of support being observable.Introduce the `cfg_target_has_reliable_f16_f128` internal feature, which provides the following new configuration gates:* `cfg(target_has_reliable_f16)`* `cfg(target_has_reliable_f16_math)`* `cfg(target_has_reliable_f128)`* `cfg(target_has_reliable_f128_math)``reliable_f16` and `reliable_f128` indicate that basic arithmetic for the type works correctly. The `_math` versions indicate that anything relying on `libm` works correctly, since sometimes this hits a separate class of codegen bugs.These options match configuration set by the build script at [1]. The logic for LLVM support is duplicated as-is from the same script. There are a few possible updates that will come as a follow up.The config introduced here is not planned to ever become stable, it is only intended to replace the build scripts for `std` tests and `compiler-builtins` that don't have any way to configure based on the codegen backend.MCP:rust-lang/compiler-team#866Closes:rust-lang/compiler-team#866[1]:https://github.com/rust-lang/rust/blob/555e1d0386f024a8359645c3217f4b3eae9be042/library/std/build.rs#L84-L186---The second commit makes use of this config to replace `cfg_{f16,f128}{,_math}` in `library/`. I omitted providing a `cfg(bootstrap)` configuration to keep things simpler since the next beta branch is in two weeks.try-job: aarch64-gnutry-job: i686-msvc-1try-job: test-varioustry-job: x86_64-gnutry-job: x86_64-msvc-ext2
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull requestJun 7, 2025
…illaumeGomezAllow `#![doc(test(attr(..)))]` everywhereThis PR adds the ability to specify [`#![doc(test(attr(..)))]`](https://doc.rust-lang.org/nightly/rustdoc/write-documentation/the-doc-attribute.html#testattr) ~~at module level~~ everywhere in addition to allowing it at crate-root.This is motivated by a recent PRrust-lang#140323 (by `@tgross35)` where we have to duplicate 2 attributes to every single `f16` and `f128` doctests, by allowing `#![doc(test(attr(..)))]` at module level (and everywhere else) we can omit them entirely and just have (in both module):```rust#![doc(test(attr(feature(cfg_target_has_reliable_f16_f128))))]#![doc(test(attr(expect(internal_features))))]```Those new attributes are appended to the one found at crate-root or at a previous module. Those "global" attributes are compatible with merged doctests (they already were before).Given the small addition that this is, I'm proposing to insta-stabilize it, but I can feature-gate it if preferred.Best reviewed commit by commit.r? `@GuillaumeGomez`
workingjubilee added a commit to workingjubilee/rustc that referenced this pull requestJun 7, 2025
…illaumeGomezAllow `#![doc(test(attr(..)))]` everywhereThis PR adds the ability to specify [`#![doc(test(attr(..)))]`](https://doc.rust-lang.org/nightly/rustdoc/write-documentation/the-doc-attribute.html#testattr) ~~at module level~~ everywhere in addition to allowing it at crate-root.This is motivated by a recent PRrust-lang#140323 (by ``@tgross35)`` where we have to duplicate 2 attributes to every single `f16` and `f128` doctests, by allowing `#![doc(test(attr(..)))]` at module level (and everywhere else) we can omit them entirely and just have (in both module):```rust#![doc(test(attr(feature(cfg_target_has_reliable_f16_f128))))]#![doc(test(attr(expect(internal_features))))]```Those new attributes are appended to the one found at crate-root or at a previous module. Those "global" attributes are compatible with merged doctests (they already were before).Given the small addition that this is, I'm proposing to insta-stabilize it, but I can feature-gate it if preferred.Best reviewed commit by commit.r? ``@GuillaumeGomez``
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull requestJun 7, 2025
…illaumeGomezAllow `#![doc(test(attr(..)))]` everywhereThis PR adds the ability to specify [`#![doc(test(attr(..)))]`](https://doc.rust-lang.org/nightly/rustdoc/write-documentation/the-doc-attribute.html#testattr) ~~at module level~~ everywhere in addition to allowing it at crate-root.This is motivated by a recent PRrust-lang#140323 (by ```@tgross35)``` where we have to duplicate 2 attributes to every single `f16` and `f128` doctests, by allowing `#![doc(test(attr(..)))]` at module level (and everywhere else) we can omit them entirely and just have (in both module):```rust#![doc(test(attr(feature(cfg_target_has_reliable_f16_f128))))]#![doc(test(attr(expect(internal_features))))]```Those new attributes are appended to the one found at crate-root or at a previous module. Those "global" attributes are compatible with merged doctests (they already were before).Given the small addition that this is, I'm proposing to insta-stabilize it, but I can feature-gate it if preferred.Best reviewed commit by commit.r? ```@GuillaumeGomez```
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull requestJun 7, 2025
…illaumeGomezAllow `#![doc(test(attr(..)))]` everywhereThis PR adds the ability to specify [`#![doc(test(attr(..)))]`](https://doc.rust-lang.org/nightly/rustdoc/write-documentation/the-doc-attribute.html#testattr) ~~at module level~~ everywhere in addition to allowing it at crate-root.This is motivated by a recent PRrust-lang#140323 (by ````@tgross35)```` where we have to duplicate 2 attributes to every single `f16` and `f128` doctests, by allowing `#![doc(test(attr(..)))]` at module level (and everywhere else) we can omit them entirely and just have (in both module):```rust#![doc(test(attr(feature(cfg_target_has_reliable_f16_f128))))]#![doc(test(attr(expect(internal_features))))]```Those new attributes are appended to the one found at crate-root or at a previous module. Those "global" attributes are compatible with merged doctests (they already were before).Given the small addition that this is, I'm proposing to insta-stabilize it, but I can feature-gate it if preferred.Best reviewed commit by commit.r? ````@GuillaumeGomez````
rust-timer added a commit that referenced this pull requestJun 8, 2025
Rollup merge of#140560 - Urgau:test_attr-module-level, r=GuillaumeGomezAllow `#![doc(test(attr(..)))]` everywhereThis PR adds the ability to specify [`#![doc(test(attr(..)))]`](https://doc.rust-lang.org/nightly/rustdoc/write-documentation/the-doc-attribute.html#testattr) ~~at module level~~ everywhere in addition to allowing it at crate-root.This is motivated by a recent PR#140323 (by ````@tgross35)```` where we have to duplicate 2 attributes to every single `f16` and `f128` doctests, by allowing `#![doc(test(attr(..)))]` at module level (and everywhere else) we can omit them entirely and just have (in both module):```rust#![doc(test(attr(feature(cfg_target_has_reliable_f16_f128))))]#![doc(test(attr(expect(internal_features))))]```Those new attributes are appended to the one found at crate-root or at a previous module. Those "global" attributes are compatible with merged doctests (they already were before).Given the small addition that this is, I'm proposing to insta-stabilize it, but I can feature-gate it if preferred.Best reviewed commit by commit.r? ````@GuillaumeGomez````
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@UrgauUrgauUrgau left review comments

@WaffleLapkinWaffleLapkinWaffleLapkin left review comments

Assignees

@UrgauUrgau

Labels

F-f16_and_f128`#![feature(f16)]`, `#![feature(f128)]`rla-silencedSilences rust-log-analyzer postings to the PR it's added on.S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Milestone

1.88.0

Development

Successfully merging this pull request may close these issues.

Add #[cfg(target_has_unstable_float = "...")]

7 participants

@tgross35@rust-log-analyzer@bors@rustbot@Urgau@WaffleLapkin@jieyouxu

[8]ページ先頭

©2009-2025 Movatter.jp