Skip to main content

hermes_rs/hermes/v95/
mod.rs

1use crate::hermes;
2
3build_instructions!(
4  (0, Unreachable, ),
5  (1, NewObjectWithBuffer, r0: Reg8, p0: UInt16, p1: UInt16, p2: UInt16, p3: UInt16),
6  (2, NewObjectWithBufferLong, r0: Reg8, p0: UInt16, p1: UInt16, p2: UInt32, p3: UInt32),
7  (3, NewObject, r0: Reg8),
8  (4, NewObjectWithParent, r0: Reg8, r1: Reg8),
9  (5, NewArrayWithBuffer, r0: Reg8, p0: UInt16, p1: UInt16, p2: UInt16),
10  (6, NewArrayWithBufferLong, r0: Reg8, p0: UInt16, p1: UInt16, p2: UInt32),
11  (7, NewArray, r0: Reg8, p0: UInt16),
12  (8, Mov, r0: Reg8, r1: Reg8),
13  (9, MovLong, r0: Reg32, r1: Reg32),
14  (10, Negate, r0: Reg8, r1: Reg8),
15  (11, Not, r0: Reg8, r1: Reg8),
16  (12, BitNot, r0: Reg8, r1: Reg8),
17  (13, TypeOf, r0: Reg8, r1: Reg8),
18  (14, Eq, r0: Reg8, r1: Reg8, r2: Reg8),
19  (15, StrictEq, r0: Reg8, r1: Reg8, r2: Reg8),
20  (16, Neq, r0: Reg8, r1: Reg8, r2: Reg8),
21  (17, StrictNeq, r0: Reg8, r1: Reg8, r2: Reg8),
22  (18, Less, r0: Reg8, r1: Reg8, r2: Reg8),
23  (19, LessEq, r0: Reg8, r1: Reg8, r2: Reg8),
24  (20, Greater, r0: Reg8, r1: Reg8, r2: Reg8),
25  (21, GreaterEq, r0: Reg8, r1: Reg8, r2: Reg8),
26  (22, Add, r0: Reg8, r1: Reg8, r2: Reg8),
27  (23, AddN, r0: Reg8, r1: Reg8, r2: Reg8),
28  (24, Mul, r0: Reg8, r1: Reg8, r2: Reg8),
29  (25, MulN, r0: Reg8, r1: Reg8, r2: Reg8),
30  (26, Div, r0: Reg8, r1: Reg8, r2: Reg8),
31  (27, DivN, r0: Reg8, r1: Reg8, r2: Reg8),
32  (28, Mod, r0: Reg8, r1: Reg8, r2: Reg8),
33  (29, Sub, r0: Reg8, r1: Reg8, r2: Reg8),
34  (30, SubN, r0: Reg8, r1: Reg8, r2: Reg8),
35  (31, LShift, r0: Reg8, r1: Reg8, r2: Reg8),
36  (32, RShift, r0: Reg8, r1: Reg8, r2: Reg8),
37  (33, URshift, r0: Reg8, r1: Reg8, r2: Reg8),
38  (34, BitAnd, r0: Reg8, r1: Reg8, r2: Reg8),
39  (35, BitXor, r0: Reg8, r1: Reg8, r2: Reg8),
40  (36, BitOr, r0: Reg8, r1: Reg8, r2: Reg8),
41  (37, Inc, r0: Reg8, r1: Reg8),
42  (38, Dec, r0: Reg8, r1: Reg8),
43  (39, InstanceOf, r0: Reg8, r1: Reg8, r2: Reg8),
44  (40, IsIn, r0: Reg8, r1: Reg8, r2: Reg8),
45  (41, GetEnvironment, r0: Reg8, p0: UInt8),
46  (42, StoreToEnvironment, r0: Reg8, p0: UInt8, r1: Reg8),
47  (43, StoreToEnvironmentL, r0: Reg8, p0: UInt16, r1: Reg8),
48  (44, StoreNPToEnvironment, r0: Reg8, p0: UInt8, r1: Reg8),
49  (45, StoreNPToEnvironmentL, r0: Reg8, p0: UInt16, r1: Reg8),
50  (46, LoadFromEnvironment, r0: Reg8, r1: Reg8, p0: UInt8),
51  (47, LoadFromEnvironmentL, r0: Reg8, r1: Reg8, p0: UInt16),
52  (48, GetGlobalObject, r0: Reg8),
53  (49, GetNewTarget, r0: Reg8),
54  (50, CreateEnvironment, r0: Reg8),
55  (51, CreateInnerEnvironment, r0: Reg8, r1: Reg8, p0: UInt32),
56  (52, DeclareGlobalVar, p0: StringIDUInt32),
57  (53, ThrowIfHasRestrictedGlobalProperty, p0: StringIDUInt32),
58  (54, GetByIdShort, r0: Reg8, r1: Reg8, p0: UInt8, p1: StringIDUInt8),
59  (55, GetById, r0: Reg8, r1: Reg8, p0: UInt8, p1: StringIDUInt16),
60  (56, GetByIdLong, r0: Reg8, r1: Reg8, p0: UInt8, p1: StringIDUInt32),
61  (57, TryGetById, r0: Reg8, r1: Reg8, p0: UInt8, p1: StringIDUInt16),
62  (58, TryGetByIdLong, r0: Reg8, r1: Reg8, p0: UInt8, p1: StringIDUInt32),
63  (59, PutById, r0: Reg8, r1: Reg8, p0: UInt8, p1: StringIDUInt16),
64  (60, PutByIdLong, r0: Reg8, r1: Reg8, p0: UInt8, p1: StringIDUInt32),
65  (61, TryPutById, r0: Reg8, r1: Reg8, p0: UInt8, p1: StringIDUInt16),
66  (62, TryPutByIdLong, r0: Reg8, r1: Reg8, p0: UInt8, p1: StringIDUInt32),
67  (63, PutNewOwnByIdShort, r0: Reg8, r1: Reg8, p0: StringIDUInt8),
68  (64, PutNewOwnById, r0: Reg8, r1: Reg8, p0: StringIDUInt16),
69  (65, PutNewOwnByIdLong, r0: Reg8, r1: Reg8, p0: StringIDUInt32),
70  (66, PutNewOwnNEById, r0: Reg8, r1: Reg8, p0: StringIDUInt16),
71  (67, PutNewOwnNEByIdLong, r0: Reg8, r1: Reg8, p0: StringIDUInt32),
72  (68, PutOwnByIndex, r0: Reg8, r1: Reg8, p0: UInt8),
73  (69, PutOwnByIndexL, r0: Reg8, r1: Reg8, p0: UInt32),
74  (70, PutOwnByVal, r0: Reg8, r1: Reg8, r2: Reg8, p0: UInt8),
75  (71, DelById, r0: Reg8, r1: Reg8, p0: StringIDUInt16),
76  (72, DelByIdLong, r0: Reg8, r1: Reg8, p0: StringIDUInt32),
77  (73, GetByVal, r0: Reg8, r1: Reg8, r2: Reg8),
78  (74, PutByVal, r0: Reg8, r1: Reg8, r2: Reg8),
79  (75, DelByVal, r0: Reg8, r1: Reg8, r2: Reg8),
80  (76, PutOwnGetterSetterByVal, r0: Reg8, r1: Reg8, r2: Reg8, r3: Reg8, p0: UInt8),
81  (77, GetPNameList, r0: Reg8, r1: Reg8, r2: Reg8, r3: Reg8),
82  (78, GetNextPName, r0: Reg8, r1: Reg8, r2: Reg8, r3: Reg8, r4: Reg8),
83  (79, Call, r0: Reg8, r1: Reg8, p0: UInt8),
84  (80, Construct, r0: Reg8, r1: Reg8, p0: UInt8),
85  (81, Call1, r0: Reg8, r1: Reg8, r2: Reg8),
86  (82, CallDirect, r0: Reg8, p0: UInt8, p1: FunctionIDUInt16),
87  (83, Call2, r0: Reg8, r1: Reg8, r2: Reg8, r3: Reg8),
88  (84, Call3, r0: Reg8, r1: Reg8, r2: Reg8, r3: Reg8, r4: Reg8),
89  (85, Call4, r0: Reg8, r1: Reg8, r2: Reg8, r3: Reg8, r4: Reg8, r5: Reg8),
90  (86, CallLong, r0: Reg8, r1: Reg8, p0: UInt32),
91  (87, ConstructLong, r0: Reg8, r1: Reg8, p0: UInt32),
92  (88, CallDirectLongIndex, r0: Reg8, p0: UInt8, p1: UInt32),
93  (89, CallBuiltin, r0: Reg8, p0: UInt8, p1: UInt8),
94  (90, CallBuiltinLong, r0: Reg8, p0: UInt8, p1: UInt32),
95  (91, GetBuiltinClosure, r0: Reg8, p0: UInt8),
96  (92, Ret, r0: Reg8),
97  (93, Catch, r0: Reg8),
98  (94, DirectEval, r0: Reg8, r1: Reg8, p0: UInt8),
99  (95, Throw, r0: Reg8),
100  (96, ThrowIfEmpty, r0: Reg8, r1: Reg8),
101  (97, Debugger, ),
102  (98, AsyncBreakCheck, ),
103  (99, ProfilePoint, p0: UInt16),
104  (100, CreateClosure, r0: Reg8, r1: Reg8, p0: FunctionIDUInt16),
105  (101, CreateClosureLongIndex, r0: Reg8, r1: Reg8, p0: FunctionIDUInt32),
106  (102, CreateGeneratorClosure, r0: Reg8, r1: Reg8, p0: FunctionIDUInt16),
107  (103, CreateGeneratorClosureLongIndex, r0: Reg8, r1: Reg8, p0: FunctionIDUInt32),
108  (104, CreateAsyncClosure, r0: Reg8, r1: Reg8, p0: FunctionIDUInt16),
109  (105, CreateAsyncClosureLongIndex, r0: Reg8, r1: Reg8, p0: FunctionIDUInt32),
110  (106, CreateThis, r0: Reg8, r1: Reg8, r2: Reg8),
111  (107, SelectObject, r0: Reg8, r1: Reg8, r2: Reg8),
112  (108, LoadParam, r0: Reg8, p0: UInt8),
113  (109, LoadParamLong, r0: Reg8, p0: UInt32),
114  (110, LoadConstUInt8, r0: Reg8, p0: UInt8),
115  (111, LoadConstInt, r0: Reg8, p0: Imm32),
116  (112, LoadConstDouble, r0: Reg8, p0: Double),
117  (113, LoadConstBigInt, r0: Reg8, p0: BigIntIDUInt16),
118  (114, LoadConstBigIntLongIndex, r0: Reg8, p0: BigIntIDUInt32),
119  (115, LoadConstString, r0: Reg8, p0: StringIDUInt16),
120  (116, LoadConstStringLongIndex, r0: Reg8, p0: StringIDUInt32),
121  (117, LoadConstEmpty, r0: Reg8),
122  (118, LoadConstUndefined, r0: Reg8),
123  (119, LoadConstNull, r0: Reg8),
124  (120, LoadConstTrue, r0: Reg8),
125  (121, LoadConstFalse, r0: Reg8),
126  (122, LoadConstZero, r0: Reg8),
127  (123, CoerceThisNS, r0: Reg8, r1: Reg8),
128  (124, LoadThisNS, r0: Reg8),
129  (125, ToNumber, r0: Reg8, r1: Reg8),
130  (126, ToNumeric, r0: Reg8, r1: Reg8),
131  (127, ToInt32, r0: Reg8, r1: Reg8),
132  (128, AddEmptyString, r0: Reg8, r1: Reg8),
133  (129, GetArgumentsPropByVal, r0: Reg8, r1: Reg8, r2: Reg8),
134  (130, GetArgumentsLength, r0: Reg8, r1: Reg8),
135  (131, ReifyArguments, r0: Reg8),
136  (132, CreateRegExp, r0: Reg8, p0: StringIDUInt32, p1: StringIDUInt32, p2: UInt32),
137  (133, SwitchImm, r0: Reg8, p0: UInt32, p1: Addr32, p2: UInt32, p3: UInt32),
138  (134, StartGenerator, ),
139  (135, ResumeGenerator, r0: Reg8, r1: Reg8),
140  (136, CompleteGenerator, ),
141  (137, CreateGenerator, r0: Reg8, r1: Reg8, p0: FunctionIDUInt16),
142  (138, CreateGeneratorLongIndex, r0: Reg8, r1: Reg8, p0: FunctionIDUInt32),
143  (139, IteratorBegin, r0: Reg8, r1: Reg8),
144  (140, IteratorNext, r0: Reg8, r1: Reg8, r2: Reg8),
145  (141, IteratorClose, r0: Reg8, p0: UInt8),
146  (142, Jmp, p0: Addr8),
147  (143, JmpLong, p0: Addr32),
148  (144, JmpTrue, p0: Addr8, r0: Reg8),
149  (145, JmpTrueLong, p0: Addr32, r0: Reg8),
150  (146, JmpFalse, p0: Addr8, r0: Reg8),
151  (147, JmpFalseLong, p0: Addr32, r0: Reg8),
152  (148, JmpUndefined, p0: Addr8, r0: Reg8),
153  (149, JmpUndefinedLong, p0: Addr32, r0: Reg8),
154  (150, SaveGenerator, p0: Addr8),
155  (151, SaveGeneratorLong, p0: Addr32),
156  (152, JLess, p0: Addr8, r0: Reg8, r1: Reg8),
157  (153, JLessLong, p0: Addr32, r0: Reg8, r1: Reg8),
158  (154, JNotLess, p0: Addr8, r0: Reg8, r1: Reg8),
159  (155, JNotLessLong, p0: Addr32, r0: Reg8, r1: Reg8),
160  (156, JLessN, p0: Addr8, r0: Reg8, r1: Reg8),
161  (157, JLessNLong, p0: Addr32, r0: Reg8, r1: Reg8),
162  (158, JNotLessN, p0: Addr8, r0: Reg8, r1: Reg8),
163  (159, JNotLessNLong, p0: Addr32, r0: Reg8, r1: Reg8),
164  (160, JLessEqual, p0: Addr8, r0: Reg8, r1: Reg8),
165  (161, JLessEqualLong, p0: Addr32, r0: Reg8, r1: Reg8),
166  (162, JNotLessEqual, p0: Addr8, r0: Reg8, r1: Reg8),
167  (163, JNotLessEqualLong, p0: Addr32, r0: Reg8, r1: Reg8),
168  (164, JLessEqualN, p0: Addr8, r0: Reg8, r1: Reg8),
169  (165, JLessEqualNLong, p0: Addr32, r0: Reg8, r1: Reg8),
170  (166, JNotLessEqualN, p0: Addr8, r0: Reg8, r1: Reg8),
171  (167, JNotLessEqualNLong, p0: Addr32, r0: Reg8, r1: Reg8),
172  (168, JGreater, p0: Addr8, r0: Reg8, r1: Reg8),
173  (169, JGreaterLong, p0: Addr32, r0: Reg8, r1: Reg8),
174  (170, JNotGreater, p0: Addr8, r0: Reg8, r1: Reg8),
175  (171, JNotGreaterLong, p0: Addr32, r0: Reg8, r1: Reg8),
176  (172, JGreaterN, p0: Addr8, r0: Reg8, r1: Reg8),
177  (173, JGreaterNLong, p0: Addr32, r0: Reg8, r1: Reg8),
178  (174, JNotGreaterN, p0: Addr8, r0: Reg8, r1: Reg8),
179  (175, JNotGreaterNLong, p0: Addr32, r0: Reg8, r1: Reg8),
180  (176, JGreaterEqual, p0: Addr8, r0: Reg8, r1: Reg8),
181  (177, JGreaterEqualLong, p0: Addr32, r0: Reg8, r1: Reg8),
182  (178, JNotGreaterEqual, p0: Addr8, r0: Reg8, r1: Reg8),
183  (179, JNotGreaterEqualLong, p0: Addr32, r0: Reg8, r1: Reg8),
184  (180, JGreaterEqualN, p0: Addr8, r0: Reg8, r1: Reg8),
185  (181, JGreaterEqualNLong, p0: Addr32, r0: Reg8, r1: Reg8),
186  (182, JNotGreaterEqualN, p0: Addr8, r0: Reg8, r1: Reg8),
187  (183, JNotGreaterEqualNLong, p0: Addr32, r0: Reg8, r1: Reg8),
188  (184, JEqual, p0: Addr8, r0: Reg8, r1: Reg8),
189  (185, JEqualLong, p0: Addr32, r0: Reg8, r1: Reg8),
190  (186, JNotEqual, p0: Addr8, r0: Reg8, r1: Reg8),
191  (187, JNotEqualLong, p0: Addr32, r0: Reg8, r1: Reg8),
192  (188, JStrictEqual, p0: Addr8, r0: Reg8, r1: Reg8),
193  (189, JStrictEqualLong, p0: Addr32, r0: Reg8, r1: Reg8),
194  (190, JStrictNotEqual, p0: Addr8, r0: Reg8, r1: Reg8),
195  (191, JStrictNotEqualLong, p0: Addr32, r0: Reg8, r1: Reg8),
196  (192, Add32, r0: Reg8, r1: Reg8, r2: Reg8),
197  (193, Sub32, r0: Reg8, r1: Reg8, r2: Reg8),
198  (194, Mul32, r0: Reg8, r1: Reg8, r2: Reg8),
199  (195, Divi32, r0: Reg8, r1: Reg8, r2: Reg8),
200  (196, Divu32, r0: Reg8, r1: Reg8, r2: Reg8),
201  (197, Loadi8, r0: Reg8, r1: Reg8, r2: Reg8),
202  (198, Loadu8, r0: Reg8, r1: Reg8, r2: Reg8),
203  (199, Loadi16, r0: Reg8, r1: Reg8, r2: Reg8),
204  (200, Loadu16, r0: Reg8, r1: Reg8, r2: Reg8),
205  (201, Loadi32, r0: Reg8, r1: Reg8, r2: Reg8),
206  (202, Loadu32, r0: Reg8, r1: Reg8, r2: Reg8),
207  (203, Store8, r0: Reg8, r1: Reg8, r2: Reg8),
208  (204, Store16, r0: Reg8, r1: Reg8, r2: Reg8),
209  (205, Store32, r0: Reg8, r1: Reg8, r2: Reg8)
210);