From a5681773abf6fe58a713d876718323ffbc43ad78 Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Sat, 14 May 2005 00:06:06 +0000 Subject: [PATCH] Document the pseudo-instruction opcodes in opcode range 56-63. These are used to support things like volatile load/store, tail calls, and calling conventions without reserving space for the additional information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21996 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/BytecodeFormat.html | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/docs/BytecodeFormat.html b/docs/BytecodeFormat.html index 5d5d55fec29..6858becd504 100644 --- a/docs/BytecodeFormat.html +++ b/docs/BytecodeFormat.html @@ -1601,10 +1601,46 @@ single uint32_vbr as follows:

Select3421.2 UserOp13511.0 UserOp23611.0 + + Pseudo Instructions* + + Invoke+CC 5651.5 + Invoke+FastCC5751.5 + Call+CC5851.5 + Call+FastCC+TailCall5951.5 + Call+FastCC6051.5 + Call+CCC+TailCall6151.5 + Load+Volatile6231.3 + Store+Volatile6331.3 +

* Note: +These aren't really opcodes from an LLVM language prespeective. They encode +information into other opcodes without reserving space for that information. +For example, opcode=63 is a Volatile Store. The opcode for this +instruction is 25 (Store) but we encode it as 63 to indicate that is a Volatile +Store. The same is done for the calling conventions and tail calls. +In each of these entries in range 56-63, the opcode is documented as the base +opcode (Invoke, Call, Store) plus some set of modifiers, as follows:

+
+
CC
+
This means a generic (user defined) calling convention number is specified + in a VBR that follows the opcode immediately. This is used when the calling + convention for the Invoke or the Call instruction is not one of the LLVM + standard ones (like FastCC or CCC) +
+
FastCC
+
This indicates that the Call or Invoke is using the FastCC calling + convention which puts arguments in registers to avoid stack loading.
+
CCC
+
This indicates that the Call or Invoke is using the "C" calling convention + which is specified by the C99 language.
+
TailCall
+
This indicates that the Call or Invoke is a tail call.
+
+
Symbol Table