flat assembler
Message board for the users of flat assembler.
Index
> Compiler Internals > rdmsrq Goto page 1, 2 Next |
Author |
|
Tomasz Grysztar 09 Dec 2010, 17:36
You should have tried to enter "rdmsrq" in the board's search box.
It would lead you precisely to the genesis of this addition: http://board.flatassembler.net/topic.php?t=5539 |
|||
09 Dec 2010, 17:36 |
|
ouadji 09 Dec 2010, 20:07
Code: fasm/rdmsr : 0Fh 32h fasm/rdmsrq : 48h 0Fh 32h ok Tomasz, thank you. But, I don't understand. from where this "48h" comes from (I see nothing about this in the intel doc) Intel® 64 and IA-32 Architectures Software Developer’s Manual 253667-035US June 2010 edit : 48h == REX.W prefix but rdmsrq / 48h 0Fh 32h does not exist ! dito for wrmsrq / 48h 0Fh 30h ... does not exist either. and this, why not ? --> CVTTSS2SIQ ? (F3 REX.W 0F 2C/r CVTTSS2SI r64, xmm/m32) and why not ADCQ ? ADC is also affected with REX.W (REX.W + 15 id ADC RAX, imm32) CMOV is also affected with REX.W ... CMOVAEQ ? (REX.W + 0F 43/r CMOVAE r64, r/m64) NOPQ ? why not ? all these additional opcodes don't make much sense. in fact, this has absolutely no meaning and totally useless. |
|||
09 Dec 2010, 20:07 |
|
Tomasz Grysztar 11 Dec 2010, 12:22
If you read that thread I referred to, you will notice that I wrote in response:
Quote: Strange, Intel doesn't specify any syntax settings to differ the two forms of those instructions. Hmm, but looking at that old documentation now, I see that I also missed RDPMCQ. |
|||
11 Dec 2010, 12:22 |
|
revolution 11 Dec 2010, 12:38
It can be tested quite easily.
Load RCX with the low order 32-bits as zero and the high order 32-bits as non-zero and execute RDMSRQ. If you get an exception then you know the REX prefix causes the CPU the use the entire RCX register. If it executes normally then you know REX had no effect. |
|||
11 Dec 2010, 12:38 |
|
revolution 11 Dec 2010, 12:44
Tomasz Grysztar wrote: Hmm, but looking at that old documentation now, I see that I also missed RDPMCQ. |
|||
11 Dec 2010, 12:44 |
|
Tomasz Grysztar 11 Dec 2010, 12:55
revolution wrote: I don't see anywhere in the RDPMC description or operation sections about the use of REX. It appears to be described differently from the RDMSR. For RDMSR I can clearly see the REX usage and then the later removal of that description. Which version did you use? I have a gap between 2004 and 2007 in my manuals' archive, perhaps I could ask you for a copy to fill it in.
|
||||||||||
11 Dec 2010, 12:55 |
|
revolution 11 Dec 2010, 13:13
I have:
2004 (unknown date or version number) Jun 2005 - 016 Jun 2006 - 020US Sep 2006 - 021 May 2007 - 023US Feb 2008 - 026US Sep 2008 - 028US Jun 2009 - 031US Jun 2010 - 035US The 64-bit stuff was added after 016 and on or before 020US. So perhaps you have a version that is between those two. Maybe between the two of us (and the others on this forum) we can complete the set. Which version(s) would you like me to post? NOTE: that the file sizes would exceed the forum limit so I guess posting here is not possible. Do you have another method of transfer? Temporarily use the ARM subdomain maybe? |
|||
11 Dec 2010, 13:13 |
|
revolution 11 Dec 2010, 13:21
Ooh, I just found some older versions also from 2001 and 2003.
From what I can tell they appear to be versions 004 and 012. |
|||
11 Dec 2010, 13:21 |
|
Tomasz Grysztar 11 Dec 2010, 13:23
I have 025US, 029US and 035US - so our collections are a bit interleaved.
However the one from 2004 I mentioned is not that IA-32 manual (which I also have - it seems to be 015 version), but a separate EM64T guide, revision 1.1, with number 300835. As for transfer through subdomain, that should be OK. |
|||
11 Dec 2010, 13:23 |
|
Tomasz Grysztar 11 Dec 2010, 13:32
BTW, I also checked all the AMD x86-64 manuals I have, back to 2002, and they always had RDMSR ignore the operand size - thus it was only the Intel's invention (and the reason why I initially did not know about it, as I based fasm's implementation of x86-64 on paper copy of 2002 AMD manuals that I own).
|
|||
11 Dec 2010, 13:32 |
|
revolution 11 Dec 2010, 14:23
I also just found a 2004 64-bit manual, 300835-002. It shows the RDPMC that you posted above. It appears that it never made it into the main manual set.
The full set of IA32, including the optimisation manuals, comes to 196MB uncompressed, 129MB compressed. You want all? |
|||
11 Dec 2010, 14:23 |
|
Tomasz Grysztar 11 Dec 2010, 14:39
revolution wrote: The full set of IA32, including the optimisation manuals, comes to 196MB uncompressed, 129MB compressed. You want all? |
|||
11 Dec 2010, 14:39 |
|
revolution 11 Dec 2010, 14:48
Okay, I'll swap it with you for 025 and 029.
Upload here is slow at the moment, be patient. |
|||
11 Dec 2010, 14:48 |
|
ouadji 11 Dec 2010, 16:17
|
|||
11 Dec 2010, 16:17 |
|
baldr 12 Dec 2010, 10:00
ouadji,
They're latest, where is previous? ----8<---- Tomasz Grysztar & revolution, I can augment your collection with 027US, 033US and 034US. |
|||
12 Dec 2010, 10:00 |
|
Tomasz Grysztar 12 Dec 2010, 10:09
revolution: thanks for the exchange. It would probably be a bit easier if we kept just the "documentation changes" document for each revision, though. Well, and then it would be even better if Intel provided the complete documentation history document instead of only the latest changes. And by the way: in the latest one (for revision 036) they claim in the revision history that they added 24 changes, but only 23 are present. A typo, or something more interesting?
ouadji: once again I have this feeling that you did not really read the thread before posting. |
|||
12 Dec 2010, 10:09 |
|
ouadji 12 Dec 2010, 11:00
Quote: ouadji: once again I have this feeling that you did not really read the thread before posting. I did not understand it was important for you to have previous versions. Besides, I still do not understand why you give so much importance to previous versions. Last edited by ouadji on 12 Dec 2010, 11:11; edited 1 time in total |
|||
12 Dec 2010, 11:00 |
|
revolution 12 Dec 2010, 11:10
baldr wrote: I can augment your collection with 027US, 033US and 034US. |
|||
12 Dec 2010, 11:10 |
|
ouadji 12 Dec 2010, 17:18
|
|||
12 Dec 2010, 17:18 |
|
Goto page 1, 2 Next < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.