xref: /llvm-project/lldb/source/DataFormatters/FormatterBytecode.def (revision ee1adc5aab4fb517314358ce03cfda426da9c4ce)
1//===-- FormatterBytecode.def -----------------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef DEFINE_OPCODE
10#define DEFINE_OPCODE(OP, MNEMONIC, NAME)
11#endif
12#ifndef DEFINE_SELECTOR
13#define DEFINE_SELECTOR(ID, NAME)
14#endif
15#ifndef DEFINE_SIGNATURE
16#define DEFINE_SIGNATURE(ID, NAME)
17#endif
18
19// Opcodes.
20DEFINE_OPCODE(0x01, "dup",  dup)
21DEFINE_OPCODE(0x02, "drop", drop)
22DEFINE_OPCODE(0x03, "pick", pick)
23DEFINE_OPCODE(0x04, "over", over)
24DEFINE_OPCODE(0x05, "swap", swap)
25DEFINE_OPCODE(0x06, "rot",  rot)
26
27DEFINE_OPCODE(0x10, "{", begin)
28DEFINE_OPCODE(0x11, "if", if)
29DEFINE_OPCODE(0x12, "ifelse", ifelse)
30DEFINE_OPCODE(0x13, "return", return)
31
32DEFINE_OPCODE(0x20, nullptr, lit_uint)
33DEFINE_OPCODE(0x21, nullptr, lit_int)
34DEFINE_OPCODE(0x22, nullptr, lit_string)
35DEFINE_OPCODE(0x23, nullptr, lit_selector)
36
37DEFINE_OPCODE(0x2a, "as_int", as_int)
38DEFINE_OPCODE(0x2b, "as_uint", as_uint)
39DEFINE_OPCODE(0x2c, "is_null", is_null)
40
41DEFINE_OPCODE(0x30, "+", plus)
42DEFINE_OPCODE(0x31, "-", minus)
43DEFINE_OPCODE(0x32, "*", mul)
44DEFINE_OPCODE(0x33, "/", div)
45DEFINE_OPCODE(0x34, "%", mod)
46DEFINE_OPCODE(0x35, "<<", shl)
47DEFINE_OPCODE(0x36, ">>", shr)
48
49DEFINE_OPCODE(0x40, "&", and)
50DEFINE_OPCODE(0x41, "|", or)
51DEFINE_OPCODE(0x42, "^", xor)
52DEFINE_OPCODE(0x43, "~", not)
53
54DEFINE_OPCODE(0x50, "=", eq)
55DEFINE_OPCODE(0x51, "!=", neq)
56DEFINE_OPCODE(0x52, "<", lt)
57DEFINE_OPCODE(0x53, ">", gt)
58DEFINE_OPCODE(0x54, "=<", le)
59DEFINE_OPCODE(0x55, ">=", ge)
60
61DEFINE_OPCODE(0x60, "call", call)
62
63// Selectors.
64DEFINE_SELECTOR(0x00, summary)
65DEFINE_SELECTOR(0x01, type_summary)
66
67DEFINE_SELECTOR(0x10, get_num_children)
68DEFINE_SELECTOR(0x11, get_child_at_index)
69DEFINE_SELECTOR(0x12, get_child_with_name)
70DEFINE_SELECTOR(0x13, get_child_index)
71DEFINE_SELECTOR(0x15, get_type)
72DEFINE_SELECTOR(0x16, get_template_argument_type)
73DEFINE_SELECTOR(0x17, cast)
74
75DEFINE_SELECTOR(0x20, get_value)
76DEFINE_SELECTOR(0x21, get_value_as_unsigned)
77DEFINE_SELECTOR(0x22, get_value_as_signed)
78DEFINE_SELECTOR(0x23, get_value_as_address)
79
80DEFINE_SELECTOR(0x40, read_memory_byte)
81DEFINE_SELECTOR(0x41, read_memory_uint32)
82DEFINE_SELECTOR(0x42, read_memory_int32)
83DEFINE_SELECTOR(0x43, read_memory_unsigned)
84DEFINE_SELECTOR(0x44, read_memory_signed)
85DEFINE_SELECTOR(0x45, read_memory_address)
86DEFINE_SELECTOR(0x46, read_memory)
87
88DEFINE_SELECTOR(0x50, fmt)
89DEFINE_SELECTOR(0x51, sprintf)
90DEFINE_SELECTOR(0x52, strlen)
91
92// Formatter signatures.
93DEFINE_SIGNATURE(0, summary)
94DEFINE_SIGNATURE(1, init)
95DEFINE_SIGNATURE(2, get_num_children)
96DEFINE_SIGNATURE(3, get_child_index)
97DEFINE_SIGNATURE(4, get_child_at_index)
98DEFINE_SIGNATURE(5, get_value)
99
100#undef DEFINE_OPCODE
101#undef DEFINE_SELECTOR
102#undef DEFINE_SIGNATURE
103