fpc/tests/webtbs/tw9145.pp
2007-07-02 21:24:29 +00:00

30 lines
650 B
ObjectPascal

program main;
{$mode objfpc}
uses
ctypes;
const
// CoProcessor registers
DIV_CR : pcuint16 = pointer($04000280);
DIV_NUMERATOR64 : pcint64 = pointer($04000290);
DIV_DENOMINATOR32 : pcint32 = pointer($04000298);
DIV_RESULT32 : pcint32 = pointer($040002A0);
DIV_64_32 = 1;
DIV_BUSY = (1 shl 15);
function mydivf32(num: cint32; den: cint32): cint32; inline;
begin
DIV_CR^ := DIV_64_32;
while (DIV_CR^ and DIV_BUSY) <> 0 do;
DIV_NUMERATOR64^ := cint64(num) shl 12;
DIV_DENOMINATOR32^ := den;
while (DIV_CR^ and DIV_BUSY) <> 0 do;
mydivf32 := DIV_RESULT32^;
end;
var
a: cint32;
begin
a := mydivf32(10, 2);
end.