File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1251,7 +1251,7 @@ Notes:
12511251* The ` state ` argument is a pointer to a structure containing all
12521252 general-purpose registers, the flag register (` %rflags ` ), the stack register
12531253 (` %rsp ` ) and the instruction pointer register (` %rip ` ).
1254- See the ` state .c` example for the structure layout.
1254+ See ` STATE ` defined in ` stdlib .c` for the structure layout.
12551255 Except for ` %rip ` , the values in the structure can be modified, in which
12561256 case the corresponding register will be updated accordingly.
12571257* The ` NAME[i] ` argument will either be an integer or a string, depending on
Original file line number Diff line number Diff line change 1313
1414#include "stdlib.c"
1515
16- /*
17- * The "state" data structure.
18- */
19- struct STATE
20- {
21- union
22- {
23- uint16_t rflags ;
24- uint64_t __padding ;
25- };
26- union
27- {
28- int64_t r15 ;
29- int32_t r15d ;
30- int16_t r15w ;
31- int8_t r15b ;
32- };
33- union
34- {
35- int64_t r14 ;
36- int32_t r14d ;
37- int16_t r14w ;
38- int8_t r14b ;
39- };
40- union
41- {
42- int64_t r13 ;
43- int32_t r13d ;
44- int16_t r13w ;
45- int8_t r13b ;
46- };
47- union
48- {
49- int64_t r12 ;
50- int32_t r12d ;
51- int16_t r12w ;
52- int8_t r12b ;
53- };
54- union
55- {
56- int64_t r11 ;
57- int32_t r11d ;
58- int16_t r11w ;
59- int8_t r11b ;
60- };
61- union
62- {
63- int64_t r10 ;
64- int32_t r10d ;
65- int16_t r10w ;
66- int8_t r10b ;
67- };
68- union
69- {
70- int64_t r9 ;
71- int32_t r9d ;
72- int16_t r9w ;
73- int8_t r9b ;
74- };
75- union
76- {
77- int64_t r8 ;
78- int32_t r8d ;
79- int16_t r8w ;
80- int8_t r8b ;
81- };
82- union
83- {
84- int64_t rdi ;
85- int32_t edi ;
86- int16_t di ;
87- int8_t dil ;
88- };
89- union
90- {
91- int64_t rsi ;
92- int32_t esi ;
93- int16_t si ;
94- int8_t sil ;
95- };
96- union
97- {
98- int64_t rbp ;
99- int32_t ebp ;
100- int16_t bp ;
101- int8_t bpl ;
102- };
103- union
104- {
105- int64_t rbx ;
106- int32_t ebx ;
107- int16_t bx ;
108- struct
109- {
110- int8_t bl ;
111- int8_t bh ;
112- };
113- };
114- union
115- {
116- int64_t rdx ;
117- int32_t edx ;
118- int16_t dx ;
119- struct
120- {
121- int8_t dl ;
122- int8_t dh ;
123- };
124- };
125- union
126- {
127- int64_t rcx ;
128- int32_t ecx ;
129- int16_t cx ;
130- struct
131- {
132- int8_t cl ;
133- int8_t ch ;
134- };
135- };
136- union
137- {
138- int64_t rax ;
139- int32_t eax ;
140- int16_t ax ;
141- struct
142- {
143- int8_t al ;
144- int8_t ah ;
145- };
146- };
147- union
148- {
149- int64_t rsp ;
150- int32_t esp ;
151- int16_t sp ;
152- int16_t spl ;
153- };
154- const union
155- {
156- int64_t rip ;
157- int32_t eip ;
158- int16_t ip ;
159- };
160- };
161-
162- /*
163- * Flags.
164- */
165- #define OF 0x0001
166- #define CF 0x0100
167- #define PF 0x0400
168- #define AF 0x1000
169- #define ZF 0x4000
170- #define SF 0x8000
171-
17216/*
17317 * Colors.
17418 */
Original file line number Diff line number Diff line change @@ -5513,6 +5513,166 @@ static uint16_t htons(uint16_t) __attribute__((__alias__("ntohs")));
55135513static uint32_t htonl (uint32_t ) __attribute__((__alias__ ("ntohl" )));
55145514static uint64_t htonll (uint64_t ) __attribute__((__alias__ ("ntohll" )));
55155515
5516+ /****************************************************************************/
5517+ /* STATE */
5518+ /****************************************************************************/
5519+
5520+ /*
5521+ * The "state" data structure.
5522+ */
5523+ struct STATE
5524+ {
5525+ union
5526+ {
5527+ uint16_t rflags ;
5528+ uint64_t __padding ;
5529+ };
5530+ union
5531+ {
5532+ int64_t r15 ;
5533+ int32_t r15d ;
5534+ int16_t r15w ;
5535+ int8_t r15b ;
5536+ };
5537+ union
5538+ {
5539+ int64_t r14 ;
5540+ int32_t r14d ;
5541+ int16_t r14w ;
5542+ int8_t r14b ;
5543+ };
5544+ union
5545+ {
5546+ int64_t r13 ;
5547+ int32_t r13d ;
5548+ int16_t r13w ;
5549+ int8_t r13b ;
5550+ };
5551+ union
5552+ {
5553+ int64_t r12 ;
5554+ int32_t r12d ;
5555+ int16_t r12w ;
5556+ int8_t r12b ;
5557+ };
5558+ union
5559+ {
5560+ int64_t r11 ;
5561+ int32_t r11d ;
5562+ int16_t r11w ;
5563+ int8_t r11b ;
5564+ };
5565+ union
5566+ {
5567+ int64_t r10 ;
5568+ int32_t r10d ;
5569+ int16_t r10w ;
5570+ int8_t r10b ;
5571+ };
5572+ union
5573+ {
5574+ int64_t r9 ;
5575+ int32_t r9d ;
5576+ int16_t r9w ;
5577+ int8_t r9b ;
5578+ };
5579+ union
5580+ {
5581+ int64_t r8 ;
5582+ int32_t r8d ;
5583+ int16_t r8w ;
5584+ int8_t r8b ;
5585+ };
5586+ union
5587+ {
5588+ int64_t rdi ;
5589+ int32_t edi ;
5590+ int16_t di ;
5591+ int8_t dil ;
5592+ };
5593+ union
5594+ {
5595+ int64_t rsi ;
5596+ int32_t esi ;
5597+ int16_t si ;
5598+ int8_t sil ;
5599+ };
5600+ union
5601+ {
5602+ int64_t rbp ;
5603+ int32_t ebp ;
5604+ int16_t bp ;
5605+ int8_t bpl ;
5606+ };
5607+ union
5608+ {
5609+ int64_t rbx ;
5610+ int32_t ebx ;
5611+ int16_t bx ;
5612+ struct
5613+ {
5614+ int8_t bl ;
5615+ int8_t bh ;
5616+ };
5617+ };
5618+ union
5619+ {
5620+ int64_t rdx ;
5621+ int32_t edx ;
5622+ int16_t dx ;
5623+ struct
5624+ {
5625+ int8_t dl ;
5626+ int8_t dh ;
5627+ };
5628+ };
5629+ union
5630+ {
5631+ int64_t rcx ;
5632+ int32_t ecx ;
5633+ int16_t cx ;
5634+ struct
5635+ {
5636+ int8_t cl ;
5637+ int8_t ch ;
5638+ };
5639+ };
5640+ union
5641+ {
5642+ int64_t rax ;
5643+ int32_t eax ;
5644+ int16_t ax ;
5645+ struct
5646+ {
5647+ int8_t al ;
5648+ int8_t ah ;
5649+ };
5650+ };
5651+ union
5652+ {
5653+ int64_t rsp ;
5654+ int32_t esp ;
5655+ int16_t sp ;
5656+ int16_t spl ;
5657+ };
5658+ const union
5659+ {
5660+ int64_t rip ;
5661+ int32_t eip ;
5662+ int16_t ip ;
5663+ };
5664+ };
5665+
5666+ /*
5667+ * Flags.
5668+ */
5669+ #define OF 0x0001
5670+ #define CF 0x0100
5671+ #define PF 0x0400
5672+ #define AF 0x1000
5673+ #define ZF 0x4000
5674+ #define SF 0x8000
5675+
55165676/****************************************************************************/
55175677/* MISC */
55185678/****************************************************************************/
You can’t perform that action at this time.
0 commit comments