Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

Introspector/GccCpp/tree-dump.c/char class switch

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

If we look at the assembly the switch for the node class, we will see the following : Block L5 L5: subl $12, %esp #, leal -56(%ebp), %eax #, tmp119 pushl %eax # tmp119 call TReftree_code_class::operator char() # addl $4, %esp #, movsbl %al,%eax # tmp120, tmp121 pushl %eax # tmp121 call IS_EXPR_CODE_CLASS(char) # addl $16, %esp #, testb %al, %al # tmp122 je L21 #, subl $8, %esp #, pushl -24(%ebp) # t pushl 8(%ebp) # di call queue_and_dump_type(dump_info*, tree_common*) # addl $16, %esp #, subl $12, %esp #, leal -56(%ebp), %eax #, tmp132 pushl %eax # tmp132 call TReftree_code_class::operator char() # addl $16, %esp #, movb %al, -257(%ebp) #, cmpb $101, -257(%ebp) #, "e" je L32 #, Jump to #Block L32 if we are equal to a "e" cmpb $101, -257(%ebp) #, jg L30 #, Jump to #Block L30 if we are greater than a "e" cmpb $50, -257(%ebp) #, je L25 #, Jump to block #Block L25 if we are equal to a "2" cmpb $50, -257(%ebp) #, // 2 jg L31 #, Jump to block #Block L31 if we are greater than a "2" cmpb $49, -257(%ebp) #, // '1' je L23 #, // case '1' jmp L29 # Jump to block #Block L29 if we have a "1" Block L31 L31: cmpb $60, -257(%ebp) #, je L25 #, jmp L29 # Jump to #Block L25 if we have a "<" else jump to #Block L29 Block L30 L30: movb -257(%ebp), %al #, tmp134 subl $114, %eax #, tmp134 cmpb $1, %al #, tmp134 ja L29 #, jmp L32 #\ Subtract "r" from the eax Jump to #Block L29 Jump Above Jump to #Block L32 if we are equal to a "e" Block L29 Block L32 Block L25