Am 14.11.2012 05:19, schrieb Curt Carpenter:
Hello.

I am using Lazarus 0.9.30.4 with FPC 2.6.0 under Windows XP.

In my system, the two functions "hi(x)" and "lo(x)" don't seem to work if the argument x is an integer variable (although both functions work fine if x is a WORD variable).

Why do you come to the conclusion that they work incorrectly? Do you have an example where you can state what you expect and what you get?

To see if I could figure out why this is, I started trying to find the System unit that contains these two functions. I haven't been able to locate it though.

The hi and lo functions are compiler intrinsics and are not visible in code (the compiler generates specific code for them). If you still want to explore: they are implemented in compiler/ninl.pas (look for "in_XX_YYY" where "XX" is either "hi" or "lo" and "YYY" is "word", "long" or "qword").


Could anyone tell me where I'll find the system unit source? I have the source for FPC, but can's seem to find system.pas anywhere.

The system units are called "system.pp" (not .pas) and are located for each target in rtl/TARGET/system.pp (these usually include files from rtl/inc or rtl/TARGET or rtl/PLATFORM) (example for TARGET is win32 or linux, example for PLATFORM is i386 or arm)

Regards,
Sven

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to