Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
1.5 KiB

  1. page ,132
  2. subttl emfconst.asm - Loading of 8087 on chip constants
  3. ;***
  4. ;emfconst.asm - Loading of 8087 on chip constants
  5. ;
  6. ; Copyright (c) 1986-89, Microsoft Corporation
  7. ;
  8. ;Purpose:
  9. ; Loading of 8087 on chip constants
  10. ;
  11. ; This Module contains Proprietary Information of Microsoft
  12. ; Corporation and should be treated as Confidential.
  13. ;
  14. ;Revision History:
  15. ; See emulator.hst
  16. ;
  17. ;*******************************************************************************
  18. ;-----------------------------------------;
  19. ; ;
  20. ; Constant Loading ;
  21. ; ;
  22. ;-----------------------------------------;
  23. ;---------------------------------------------------
  24. ; !
  25. ; 8087 emulator constant loading !
  26. ; !
  27. ;---------------------------------------------------
  28. ProfBegin FCONST
  29. LoadConstantEntry MACRO cName,Position
  30. pub e&cName
  31. mov ebx,offset c&cName
  32. IFIDN <&Position>,<Last>
  33. ELSE ;IFIDN <&Position>,<Last>
  34. jmp short CommonConst
  35. ENDIF ;IFIDN <&Position>,<Last>
  36. ENDM
  37. ifndef frontend
  38. ifndef SMALL_EMULATOR
  39. LoadConstantEntry FLDPI,NotLast
  40. LoadConstantEntry FLDL2T,NotLast
  41. LoadConstantEntry FLDL2E,NotLast
  42. LoadConstantEntry FLDLG2,NotLast
  43. LoadConstantEntry FLDLN2,NotLast
  44. endif ;not SMALL_EMULATOR
  45. endif ;not frontend
  46. LoadConstantEntry FLDZ,NotLast
  47. LoadConstantEntry FLD1,Last
  48. pub CommonConst
  49. PUSHST
  50. MOV esi,ebx
  51. MOV edi,[CURstk]
  52. ifdef i386
  53. rept Reg87Len/4
  54. MOVS dword ptr es:[edi], dword ptr cs:[esi]
  55. endm
  56. else
  57. rept Reg87Len/2
  58. MOVS word ptr es:[edi], word ptr cs:[esi]
  59. endm
  60. endif
  61. RET
  62. ProfEnd FCONST