Microcode in pictures

Since a picture is worth thousand words below are a few drawings for your enjoyment. Let us start at the top level, with the mbl_array_t class, which represents the entire microcode object:

The above picture does not show the control flow graph. For that we use predecessor and successor lists:

Pay attention to the block types here. Then, each basic block contains a list of instructions:

Instructions can be nested, and the next drawing shows how it looks like:

As you see, conceptually things are quite simple. But the devil is in the details, as usual

 

Article Link: http://www.hexblog.com/?p=1232