Behavior and restrictions – Intel Extensible Firmware Interface User Manual

Page 793

Advertising
background image

EFI Byte Code Virtual Machine

Version 1.10

12/01/02

19-19

BEHAVIOR AND RESTRICTIONS:

• For the CALL32 forms, if Operand 1 is indirect, then the immediate data is interpreted as an

index, and the Operand 1 value is fetched from memory address [R

1

+ Index32].

• For the CALL32 forms, if Operand 1 is direct, then the immediate data is considered a signed

immediate value and is added to the Operand 1 register contents such that Operand 1 = R

1

+

Immed32.

• For the CALLEX forms, the VM must fix up the stack pointer and execute a call to native code

in a manner compatible with the native code such that the callee is able to access arguments
passed on the VM stack..

• For the CALLEX forms, the value returned by the callee should be returned in R7.
• For the CALL64 forms, the Operand 1 fields are ignored.
• If Byte7:Bit6 = 1 (CALL64), then Byte1:Bit4 is assumed to be 0 (absolute address)

• For CALL32 forms, if Operand 1 register = R0, then the register operand is ignored and only

the immediate data is used in the calculation of the call address.

• Prior to the call, the VM will decrement the stack pointer R0 by 16 bytes, and store the 64-bit

return address on the stack.

• Offsets for relative calls are relative to the address of the instruction following the CALL

instruction.

Advertising