Sunny Cove wide

By: Linus Torvalds (torvalds.delete@this.linux-foundation.org), December 14, 2018 1:54 pm
Room: Moderated Discussions
anon (spam.delete.delete.delete@this.this.this.spam.com) on December 14, 2018 2:57 am wrote:
>
> The point is that renaming works differently for flags.
> There aren't multiple flags to choose from. It's always the most recent one.

What? No.

First off, that's how it works for all registers. When you rename "%rax", there's always one special one: the most recent one in the instruction stream is what you use and rename. That's the whole point. That's how you can execute out of order, thanks to the renaming. The same is true of flags.

Secondly, there are multiple flags, and you have to rename them as such if you want to do a good job. The x86 instructions that write flags do not all modify all the flag bits, with some instructions only touching CF, others only touching ZF, and others touching all the arithmetic flags. Or all except for CF.

So no, the flags register isn't "one register". It's several registers internally, and they can be (and should) be renamed separately if you want to get good scheduling.

Then an instruction like "pushf" (that wants all the bits) needs to read all those different physical registers that could get renamed separately.

Do you have to treat eflags as if it was multiple registers? No. You could treat it as a single one and just have a number of false dependencies. Do you have to rename it at all? No, you could have some "generate flags value at retire time in order" logic instead, and maybe have some special logic for the relatively few instructions that use flags as a source (as opposed to just writing flags, like most arithmetic instructions do).

But you most definitely can (and almost certainly should) treat the flags register as multiple sub-flag-registers that get renamed, for largely the same reasons you rename normal registers. The details look different, but it's not that different from the issues you can have with partial (regular) register writes etc.

Linus
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
Sunny Cove wideSeni2018/12/12 02:58 PM
  Sunny Cove wideTravis Downs2018/12/12 09:25 PM
    Sunny Cove wideJeff S.2018/12/12 10:26 PM
      Sunny Cove wideTravis Downs2018/12/13 08:42 AM
        Sunny Cove wideanon2018/12/13 09:09 AM
          Sunny Cove wideTravis Downs2018/12/13 09:30 AM
            Sunny Cove wideJeff S.2018/12/13 09:40 AM
              Sunny Cove wideTravis Downs2018/12/13 09:55 AM
                Sunny Cove wideJeff S.2018/12/13 12:41 PM
                  Sunny Cove wideTravis Downs2018/12/13 02:03 PM
                  Non-power-of-two set sizesPaul A. Clayton2018/12/15 07:30 PM
        Sunny Cove wideJeff S.2018/12/13 09:33 AM
          Sunny Cove wideTravis Downs2018/12/13 09:50 AM
          What is "u-tagged"?G Adair2018/12/13 09:54 PM
            What is "u-tagged"?Travis Downs2018/12/13 11:22 PM
            What is "u-tagged"?Jeff S.2018/12/14 08:48 AM
              What is "u-tagged"?anon2018/12/14 08:51 PM
                What is "u-tagged"?Jeff S.2018/12/14 10:23 PM
                  What is "u-tagged"?anon2018/12/15 05:37 AM
                    What is "u-tagged"?anon2018/12/15 08:06 AM
                      What is "u-tagged"?Travis Downs2018/12/15 09:52 AM
                        What is "u-tagged"?anon2018/12/16 08:26 AM
                          What is "u-tagged"?Anon2018/12/18 04:25 AM
    Sunny Cove wideSeni2018/12/13 03:33 AM
      Sunny Cove wideKevin G2018/12/13 08:37 AM
        Sunny Cove wideTravis Downs2018/12/13 09:17 AM
          Sunny Cove wideKevin G2018/12/17 10:09 AM
            Sunny Cove wideTravis Downs2018/12/18 03:14 PM
              Sunny Cove wideKevin G2018/12/19 12:02 PM
      Sunny Cove wideTravis Downs2018/12/13 08:51 AM
        Sunny Cove wideMaynard Handley2018/12/13 11:25 AM
          Sunny Cove wideTravis Downs2018/12/13 12:23 PM
            Sunny Cove wideanon2018/12/13 02:01 PM
              Sunny Cove wideTravis Downs2018/12/13 02:22 PM
                Sunny Cove wideanon2018/12/13 04:51 PM
                  Sunny Cove wideTravis Downs2018/12/13 05:36 PM
                    Sunny Cove wideanon2018/12/14 03:57 AM
                      Sunny Cove wideLinus Torvalds2018/12/14 01:54 PM
                        Sunny Cove wideanon2018/12/14 04:25 PM
                          Sunny Cove wideLinus Torvalds2018/12/14 06:46 PM
                            Sunny Cove wideanon2018/12/15 02:57 AM
                              Sunny Cove wideanon2018/12/15 05:59 AM
                                Sunny Cove wideanon2018/12/15 06:59 AM
                                  Sunny Cove wideanon2018/12/15 07:03 AM
                                Sunny Cove widea_different_anon2018/12/15 07:45 AM
                              Sunny Cove wideSeni2018/12/15 06:25 AM
                                Sunny Cove wideanon2018/12/15 07:02 AM
                                  Sunny Cove wideLinus Torvalds2018/12/15 10:52 AM
                                    Sunny Cove wideanon2018/12/15 11:13 AM
                                      Sunny Cove wideTravis Downs2018/12/16 11:15 AM
                                      Sunny Cove wideanon2018/12/17 12:42 AM
                                        how many anons here? (NT)Michael S2018/12/17 02:46 AM
                      Sunny Cove wideTravis Downs2018/12/15 10:08 AM
                        Sunny Cove wideanon2018/12/15 10:55 AM
                          Sunny Cove wideTravis Downs2018/12/16 09:19 AM
                            Sunny Cove wideanon2018/12/16 10:37 AM
                              Sunny Cove wideTravis Downs2018/12/16 10:57 AM
                                Sunny Cove wideanon2018/12/16 12:04 PM
                                  Sunny Cove wideTravis Downs2018/12/16 07:51 PM
                          Sunny Cove wideTravis Downs2018/12/16 11:32 AM
        Sunny Cove wideSeni2018/12/13 04:20 PM
          Fair enough! (NT)Travis Downs2018/12/13 04:43 PM
  Sunny Cove wide-.-2018/12/13 04:37 AM
    Sunny Cove wideanon2018/12/13 09:06 AM
      Sunny Cove wideTravis Downs2018/12/13 09:39 AM
        Sunny Cove wideanon2018/12/13 12:09 PM
          Sunny Cove wideTravis Downs2018/12/13 12:27 PM
            Sunny Cove wideanon2018/12/13 01:11 PM
    Sunny Cove wideTravis Downs2018/12/13 09:23 AM
      Sunny Cove wideanonymous22018/12/13 03:20 PM
        Sunny Cove wideTravis Downs2018/12/13 05:00 PM
          Sunny Cove wideanon³2018/12/13 10:34 PM
            Sunny Cove wideTravis Downs2018/12/16 07:53 PM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell green?