|
@@ -483,180 +483,164 @@ END Equal;
|
|
(** Put a 32-bit host value into buf[ofs..ofs+3] *)
|
|
(** Put a 32-bit host value into buf[ofs..ofs+3] *)
|
|
|
|
|
|
PROCEDURE Put4*(VAR buf: ARRAY OF CHAR; ofs, val: LONGINT);
|
|
PROCEDURE Put4*(VAR buf: ARRAY OF CHAR; ofs, val: LONGINT);
|
|
|
|
+CODE
|
|
#IF I386 THEN
|
|
#IF I386 THEN
|
|
- CODE
|
|
|
|
- MOV EAX, [EBP+val]
|
|
|
|
- MOV EBX, [EBP+ofs]
|
|
|
|
- MOV ECX, [EBP+buf]
|
|
|
|
- MOV [ECX+EBX], EAX
|
|
|
|
|
|
+ MOV EAX, [EBP+val]
|
|
|
|
+ MOV EBX, [EBP+ofs]
|
|
|
|
+ MOV ECX, [EBP+buf]
|
|
|
|
+ MOV [ECX+EBX], EAX
|
|
#ELSIF AMD64 THEN
|
|
#ELSIF AMD64 THEN
|
|
- CODE
|
|
|
|
- MOV EAX, [RBP+val]
|
|
|
|
- MOV EBX, [RBP+ofs]
|
|
|
|
- MOV RCX, [RBP+buf]
|
|
|
|
- MOV [RCX+RBX], EAX
|
|
|
|
|
|
+ MOV EAX, [RBP+val]
|
|
|
|
+ MOV EBX, [RBP+ofs]
|
|
|
|
+ MOV RCX, [RBP+buf]
|
|
|
|
+ MOV [RCX+RBX], EAX
|
|
#ELSE
|
|
#ELSE
|
|
- BEGIN
|
|
|
|
- ASSERT (FALSE);
|
|
|
|
|
|
+ unimplemented
|
|
#END
|
|
#END
|
|
END Put4;
|
|
END Put4;
|
|
|
|
|
|
(** Put a 16-bit host value into buf[ofs..ofs+1] *)
|
|
(** Put a 16-bit host value into buf[ofs..ofs+1] *)
|
|
|
|
|
|
PROCEDURE Put2*(VAR buf: ARRAY OF CHAR; ofs, val: LONGINT);
|
|
PROCEDURE Put2*(VAR buf: ARRAY OF CHAR; ofs, val: LONGINT);
|
|
|
|
+CODE
|
|
#IF I386 THEN
|
|
#IF I386 THEN
|
|
- CODE
|
|
|
|
- MOV EAX, [EBP+val]
|
|
|
|
- MOV EBX, [EBP+ofs]
|
|
|
|
- MOV ECX, [EBP+buf]
|
|
|
|
- MOV [ECX+EBX], AX
|
|
|
|
|
|
+ MOV EAX, [EBP+val]
|
|
|
|
+ MOV EBX, [EBP+ofs]
|
|
|
|
+ MOV ECX, [EBP+buf]
|
|
|
|
+ MOV [ECX+EBX], AX
|
|
#ELSIF AMD64 THEN
|
|
#ELSIF AMD64 THEN
|
|
- CODE
|
|
|
|
- MOV EAX, [RBP+val]
|
|
|
|
- MOV EBX, [RBP+ofs]
|
|
|
|
- MOV RCX, [RBP+buf]
|
|
|
|
- MOV [RCX+RBX], AX
|
|
|
|
|
|
+ MOV EAX, [RBP+val]
|
|
|
|
+ MOV EBX, [RBP+ofs]
|
|
|
|
+ MOV RCX, [RBP+buf]
|
|
|
|
+ MOV [RCX+RBX], AX
|
|
#ELSE
|
|
#ELSE
|
|
- BEGIN
|
|
|
|
- ASSERT (FALSE);
|
|
|
|
|
|
+ unimplemented
|
|
#END
|
|
#END
|
|
END Put2;
|
|
END Put2;
|
|
|
|
|
|
(** Get a 32-bit host value from buf[ofs..ofs+3] *)
|
|
(** Get a 32-bit host value from buf[ofs..ofs+3] *)
|
|
|
|
|
|
PROCEDURE Get4*(CONST buf: ARRAY OF CHAR; ofs: LONGINT): LONGINT;
|
|
PROCEDURE Get4*(CONST buf: ARRAY OF CHAR; ofs: LONGINT): LONGINT;
|
|
|
|
+CODE
|
|
#IF I386 THEN
|
|
#IF I386 THEN
|
|
- CODE
|
|
|
|
- MOV EBX, [EBP+ofs]
|
|
|
|
- MOV ECX, [EBP+buf]
|
|
|
|
- MOV EAX, [ECX+EBX]
|
|
|
|
|
|
+ MOV EBX, [EBP+ofs]
|
|
|
|
+ MOV ECX, [EBP+buf]
|
|
|
|
+ MOV EAX, [ECX+EBX]
|
|
#ELSIF AMD64 THEN
|
|
#ELSIF AMD64 THEN
|
|
- CODE
|
|
|
|
- MOV EBX, [RBP+ofs]
|
|
|
|
- MOV RCX, [RBP+buf]
|
|
|
|
- MOV EAX, [RCX+RBX]
|
|
|
|
|
|
+ MOV EBX, [RBP+ofs]
|
|
|
|
+ MOV RCX, [RBP+buf]
|
|
|
|
+ MOV EAX, [RCX+RBX]
|
|
#ELSE
|
|
#ELSE
|
|
- BEGIN
|
|
|
|
- ASSERT (FALSE);
|
|
|
|
|
|
+ unimplemented
|
|
#END
|
|
#END
|
|
END Get4;
|
|
END Get4;
|
|
|
|
|
|
(** Get a 16-bit host value from buf[ofs..ofs+1] *)
|
|
(** Get a 16-bit host value from buf[ofs..ofs+1] *)
|
|
|
|
|
|
PROCEDURE Get2*(CONST buf: ARRAY OF CHAR; ofs: LONGINT): LONGINT;
|
|
PROCEDURE Get2*(CONST buf: ARRAY OF CHAR; ofs: LONGINT): LONGINT;
|
|
|
|
+CODE
|
|
#IF I386 THEN
|
|
#IF I386 THEN
|
|
- CODE
|
|
|
|
- MOV EBX, [EBP+ofs]
|
|
|
|
- MOV ECX, [EBP+buf]
|
|
|
|
- XOR EAX, EAX
|
|
|
|
- MOV AX, [ECX+EBX]
|
|
|
|
|
|
+ MOV EBX, [EBP+ofs]
|
|
|
|
+ MOV ECX, [EBP+buf]
|
|
|
|
+ XOR EAX, EAX
|
|
|
|
+ MOV AX, [ECX+EBX]
|
|
#ELSIF AMD64 THEN
|
|
#ELSIF AMD64 THEN
|
|
- CODE
|
|
|
|
- MOV EBX, [RBP+ofs]
|
|
|
|
- MOV RCX, [RBP+buf]
|
|
|
|
- XOR EAX, EAX
|
|
|
|
- MOV AX, [RCX+RBX]
|
|
|
|
|
|
+ MOV EBX, [RBP+ofs]
|
|
|
|
+ MOV RCX, [RBP+buf]
|
|
|
|
+ XOR EAX, EAX
|
|
|
|
+ MOV AX, [RCX+RBX]
|
|
#ELSE
|
|
#ELSE
|
|
- BEGIN
|
|
|
|
- ASSERT (FALSE);
|
|
|
|
|
|
+ unimplemented
|
|
#END
|
|
#END
|
|
END Get2;
|
|
END Get2;
|
|
|
|
|
|
(** Put a 32-bit host value into buf[ofs..ofs+3] in network byte order *)
|
|
(** Put a 32-bit host value into buf[ofs..ofs+3] in network byte order *)
|
|
|
|
|
|
PROCEDURE PutNet4*(VAR buf: ARRAY OF CHAR; ofs, val: LONGINT);
|
|
PROCEDURE PutNet4*(VAR buf: ARRAY OF CHAR; ofs, val: LONGINT);
|
|
|
|
+CODE
|
|
#IF I386 THEN
|
|
#IF I386 THEN
|
|
- CODE
|
|
|
|
- MOV EAX, [EBP+val]
|
|
|
|
- XCHG AL, AH
|
|
|
|
- ROL EAX, 16
|
|
|
|
- XCHG AL, AH
|
|
|
|
- MOV EBX, [EBP+ofs]
|
|
|
|
- MOV ECX, [EBP+buf]
|
|
|
|
- MOV [ECX+EBX], EAX
|
|
|
|
|
|
+ MOV EAX, [EBP+val]
|
|
|
|
+ XCHG AL, AH
|
|
|
|
+ ROL EAX, 16
|
|
|
|
+ XCHG AL, AH
|
|
|
|
+ MOV EBX, [EBP+ofs]
|
|
|
|
+ MOV ECX, [EBP+buf]
|
|
|
|
+ MOV [ECX+EBX], EAX
|
|
#ELSIF AMD64 THEN
|
|
#ELSIF AMD64 THEN
|
|
- CODE
|
|
|
|
- MOV EAX, [RBP+val]
|
|
|
|
- XCHG AL, AH
|
|
|
|
- ROL EAX, 16
|
|
|
|
- XCHG AL, AH
|
|
|
|
- MOV EBX, [RBP+ofs]
|
|
|
|
- MOV RCX, [RBP+buf]
|
|
|
|
- MOV [RCX+RBX], EAX
|
|
|
|
|
|
+ MOV EAX, [RBP+val]
|
|
|
|
+ XCHG AL, AH
|
|
|
|
+ ROL EAX, 16
|
|
|
|
+ XCHG AL, AH
|
|
|
|
+ MOV EBX, [RBP+ofs]
|
|
|
|
+ MOV RCX, [RBP+buf]
|
|
|
|
+ MOV [RCX+RBX], EAX
|
|
#ELSE
|
|
#ELSE
|
|
- BEGIN
|
|
|
|
- ASSERT (FALSE);
|
|
|
|
|
|
+ unimplemented
|
|
#END
|
|
#END
|
|
END PutNet4;
|
|
END PutNet4;
|
|
|
|
|
|
(** Put a 16-bit host value into buf[ofs..ofs+1] in network byte order *)
|
|
(** Put a 16-bit host value into buf[ofs..ofs+1] in network byte order *)
|
|
|
|
|
|
PROCEDURE PutNet2*(VAR buf: ARRAY OF CHAR; ofs, val: LONGINT);
|
|
PROCEDURE PutNet2*(VAR buf: ARRAY OF CHAR; ofs, val: LONGINT);
|
|
|
|
+CODE
|
|
#IF I386 THEN
|
|
#IF I386 THEN
|
|
- CODE
|
|
|
|
- MOV EAX, [EBP+val]
|
|
|
|
- XCHG AL, AH
|
|
|
|
- MOV EBX, [EBP+ofs]
|
|
|
|
- MOV ECX, [EBP+buf]
|
|
|
|
- MOV [ECX+EBX], AX
|
|
|
|
|
|
+ MOV EAX, [EBP+val]
|
|
|
|
+ XCHG AL, AH
|
|
|
|
+ MOV EBX, [EBP+ofs]
|
|
|
|
+ MOV ECX, [EBP+buf]
|
|
|
|
+ MOV [ECX+EBX], AX
|
|
#ELSIF AMD64 THEN
|
|
#ELSIF AMD64 THEN
|
|
- CODE
|
|
|
|
- MOV EAX, [RBP+val]
|
|
|
|
- XCHG AL, AH
|
|
|
|
- MOV EBX, [RBP+ofs]
|
|
|
|
- MOV RCX, [RBP+buf]
|
|
|
|
- MOV [RCX+RBX], AX
|
|
|
|
|
|
+ MOV EAX, [RBP+val]
|
|
|
|
+ XCHG AL, AH
|
|
|
|
+ MOV EBX, [RBP+ofs]
|
|
|
|
+ MOV RCX, [RBP+buf]
|
|
|
|
+ MOV [RCX+RBX], AX
|
|
#ELSE
|
|
#ELSE
|
|
- BEGIN
|
|
|
|
- ASSERT (FALSE);
|
|
|
|
|
|
+ unimplemented
|
|
#END
|
|
#END
|
|
END PutNet2;
|
|
END PutNet2;
|
|
|
|
|
|
(** Get a 32-bit network value from buf[ofs..ofs+3] in host byte order *)
|
|
(** Get a 32-bit network value from buf[ofs..ofs+3] in host byte order *)
|
|
|
|
|
|
PROCEDURE GetNet4*(CONST buf: ARRAY OF CHAR; ofs: LONGINT): LONGINT;
|
|
PROCEDURE GetNet4*(CONST buf: ARRAY OF CHAR; ofs: LONGINT): LONGINT;
|
|
|
|
+CODE
|
|
#IF I386 THEN
|
|
#IF I386 THEN
|
|
- CODE
|
|
|
|
- MOV EBX, [EBP+ofs]
|
|
|
|
- MOV ECX, [EBP+buf]
|
|
|
|
- MOV EAX, [ECX+EBX]
|
|
|
|
- XCHG AL, AH
|
|
|
|
- ROL EAX, 16
|
|
|
|
- XCHG AL, AH
|
|
|
|
|
|
+ MOV EBX, [EBP+ofs]
|
|
|
|
+ MOV ECX, [EBP+buf]
|
|
|
|
+ MOV EAX, [ECX+EBX]
|
|
|
|
+ XCHG AL, AH
|
|
|
|
+ ROL EAX, 16
|
|
|
|
+ XCHG AL, AH
|
|
#ELSIF AMD64 THEN
|
|
#ELSIF AMD64 THEN
|
|
- CODE
|
|
|
|
- MOV EBX, [RBP+ofs]
|
|
|
|
- MOV RCX, [RBP+buf]
|
|
|
|
- MOV EAX, [RCX+EBX]
|
|
|
|
- XCHG AL, AH
|
|
|
|
- ROL EAX, 16
|
|
|
|
- XCHG AL, AH
|
|
|
|
|
|
+ MOV EBX, [RBP+ofs]
|
|
|
|
+ MOV RCX, [RBP+buf]
|
|
|
|
+ MOV EAX, [RCX+EBX]
|
|
|
|
+ XCHG AL, AH
|
|
|
|
+ ROL EAX, 16
|
|
|
|
+ XCHG AL, AH
|
|
#ELSE
|
|
#ELSE
|
|
- BEGIN
|
|
|
|
- ASSERT (FALSE);
|
|
|
|
|
|
+ unimplemented
|
|
#END
|
|
#END
|
|
END GetNet4;
|
|
END GetNet4;
|
|
|
|
|
|
(** Get a 16-bit network value from buf[ofs..ofs+1] in host byte order *)
|
|
(** Get a 16-bit network value from buf[ofs..ofs+1] in host byte order *)
|
|
|
|
|
|
PROCEDURE GetNet2*(CONST buf: ARRAY OF CHAR; ofs: LONGINT): LONGINT;
|
|
PROCEDURE GetNet2*(CONST buf: ARRAY OF CHAR; ofs: LONGINT): LONGINT;
|
|
|
|
+CODE
|
|
#IF I386 THEN
|
|
#IF I386 THEN
|
|
- CODE
|
|
|
|
- MOV EBX, [EBP+ofs]
|
|
|
|
- MOV ECX, [EBP+buf]
|
|
|
|
- XOR EAX, EAX
|
|
|
|
- MOV AX, [ECX+EBX]
|
|
|
|
- XCHG AL, AH
|
|
|
|
|
|
+ MOV EBX, [EBP+ofs]
|
|
|
|
+ MOV ECX, [EBP+buf]
|
|
|
|
+ XOR EAX, EAX
|
|
|
|
+ MOV AX, [ECX+EBX]
|
|
|
|
+ XCHG AL, AH
|
|
#ELSIF AMD64 THEN
|
|
#ELSIF AMD64 THEN
|
|
- CODE
|
|
|
|
- MOV EBX, [RBP+ofs]
|
|
|
|
- MOV RCX, [RBP+buf]
|
|
|
|
- XOR EAX, EAX
|
|
|
|
- MOV AX, [RCX+RBX]
|
|
|
|
- XCHG AL, AH
|
|
|
|
|
|
+ MOV EBX, [RBP+ofs]
|
|
|
|
+ MOV RCX, [RBP+buf]
|
|
|
|
+ XOR EAX, EAX
|
|
|
|
+ MOV AX, [RCX+RBX]
|
|
|
|
+ XCHG AL, AH
|
|
#ELSE
|
|
#ELSE
|
|
- BEGIN
|
|
|
|
- ASSERT (FALSE);
|
|
|
|
|
|
+ unimplemented
|
|
#END
|
|
#END
|
|
END GetNet2;
|
|
END GetNet2;
|
|
|
|
|