tb0269.pp 555 B

1234567891011121314151617181920212223242526272829
  1. { %CPU=i386}
  2. { Old file: tbs0313.pp }
  3. { }
  4. {$asmmode intel}
  5. TYPE
  6. TPoint3 = RECORD
  7. x,y,z:Single;
  8. END;
  9. OPERATOR + (CONST p1,p2:TPoint3) p : TPoint3; Assembler;
  10. ASM
  11. mov EBX,[p1]
  12. mov EDI,[p2]
  13. mov EDX,[p]
  14. movq MM0,[EBX]
  15. pfadd MM0,[EDI]
  16. movq [EDX],MM0
  17. { Now the correct way would be something like: }
  18. movd MM0,[EBX+8] // [movd reg??,mem?? - invalid combination of opcod
  19. movd MM1,[EDI+8] // and here, too
  20. pfadd MM0,MM1
  21. movd [EDX+8],MM0 // and here
  22. femms
  23. END;
  24. begin
  25. end.