lkml.org 
[lkml]   [1998]   [Aug]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: BUILD_SMP_TIMER_INTERRUPT not needed movl
    On Tue, 11 Aug 1998, Gabriel Paubert wrote:

    >
    >
    > On Tue, 11 Aug 1998, Richard B. Johnson wrote:
    >
    > > The first reference I find to a difference (for stack operation) was with
    > > the i486 p.p. 22-5, Intel486 Programmer's Reference Manual.
    > >
    >
    > >From the latest and greatest (well quite recent anyway) Intel architecture
    > doc (24319201.pdf, you've just got to love Intel's poetic names), section
    > 17.10.1 which is dedicated to the behaviour of the `push sp' instruction:
    >

    If the IBM part number for the first hard disk drive was "45" instead
    of "3030", we'd have "Colts" instead of "Winchesters".


    > `The P6 family, Pentium, Intel486, Intel386, and Intel 286 processors push
    > a different value on the stack for a PUSH SP instruction than the 8086
    > processor. The 32-bit processors push the value of the SP register before
    > it is decremented as part of the push operation; the 8086 processor pushes
    > the value of the SP register after it is decremented.'
    >

    You are probably quite right, but I think the documentation was written
    quite a bit after the fact. In the "Olden" days I once wrote something
    that "had to know" what the SP was. I think I used it to determine
    how many parameters were pushed to an assembly-language function that
    had a variable parameter list. As I recall, I used a debugger to get
    everything to work out right because the "new" '286 documentation
    didn't tell...

    > They qualify the 286 as a 32-bit processor (!) but I quite clearly
    > remember that `push sp' behaviour was a test to check whether you had a
    > 8088/8086 or 286 when the AT came out.

    The Intel way was to try to set all bits in the flag register.
    If 12-15 are set, it's a 86/88. If all clear, it's a '286.
    If not, play with eflags (full length), and see if some other
    bit is fixed ('386), etc., etc...


    Cheers,
    Dick Johnson
    ***** FILE SYSTEM WAS MODIFIED *****
    Penguin : Linux version 2.1.115 on an i586 machine (66.15 BogoMips).
    Warning : It's hard to remain at the trailing edge of technology.


    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.rutgers.edu
    Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html

    \
     
     \ /
      Last update: 2005-03-22 13:43    [W:0.024 / U:89.564 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site