#include <sp_head.h>
Inheritance diagram for sp_instr:


Public Member Functions | |
| sp_instr (uint ip, sp_pcontext *ctx) | |
| virtual | ~sp_instr () |
| virtual int | execute (THD *thd, uint *nextp)=0 |
| virtual int | exec_core (THD *thd, uint *nextp) |
| virtual void | print (String *str)=0 |
| virtual void | backpatch (uint dest, sp_pcontext *dst_ctx) |
| virtual uint | opt_mark (sp_head *sp) |
| virtual uint | opt_shortcut_jump (sp_head *sp, sp_instr *start) |
| virtual void | opt_move (uint dst, List< sp_instr > *ibp) |
Public Attributes | |
| uint | marked |
| uint | m_ip |
| sp_pcontext * | m_ctx |
Private Member Functions | |
| sp_instr (const sp_instr &) | |
| void | operator= (sp_instr &) |
Definition at line 425 of file sp_head.h.
| sp_instr::sp_instr | ( | const sp_instr & | ) | [private] |
| sp_instr::sp_instr | ( | uint | ip, | |
| sp_pcontext * | ctx | |||
| ) | [inline] |
| virtual sp_instr::~sp_instr | ( | ) | [inline, virtual] |
Definition at line 441 of file sp_head.h.
References free_items().
00442 { free_items(); }
Here is the call graph for this function:

| virtual void sp_instr::backpatch | ( | uint | dest, | |
| sp_pcontext * | dst_ctx | |||
| ) | [inline, virtual] |
Reimplemented in sp_instr_jump.
Definition at line 475 of file sp_head.h.
Referenced by sp_head::backpatch().
Here is the caller graph for this function:

| int sp_instr::exec_core | ( | THD * | thd, | |
| uint * | nextp | |||
| ) | [virtual] |
Reimplemented in sp_instr_stmt, sp_instr_set, sp_instr_set_trigger_field, sp_instr_jump_if_not, sp_instr_freturn, sp_instr_copen, and sp_instr_set_case_expr.
Definition at line 2451 of file sp_head.cc.
References DBUG_ASSERT.
Referenced by sp_lex_keeper::reset_lex_and_exec_core().
02452 { 02453 DBUG_ASSERT(0); 02454 return 0; 02455 }
Here is the caller graph for this function:

| virtual int sp_instr::execute | ( | THD * | thd, | |
| uint * | nextp | |||
| ) | [pure virtual] |
Implemented in sp_instr_stmt, sp_instr_set, sp_instr_set_trigger_field, sp_instr_jump, sp_instr_jump_if_not, sp_instr_freturn, sp_instr_hpush_jump, sp_instr_hpop, sp_instr_hreturn, sp_instr_cpush, sp_instr_cpop, sp_instr_copen, sp_instr_cclose, sp_instr_cfetch, sp_instr_error, and sp_instr_set_case_expr.
Referenced by sp_head::execute().
Here is the caller graph for this function:

| void sp_instr::operator= | ( | sp_instr & | ) | [private] |
Reimplemented in sp_instr_jump, sp_instr_jump_if_not, sp_instr_freturn, sp_instr_hpush_jump, sp_instr_hreturn, sp_instr_error, and sp_instr_set_case_expr.
Definition at line 483 of file sp_head.h.
Referenced by sp_head::opt_mark().
Here is the caller graph for this function:

Reimplemented in sp_instr_jump, sp_instr_jump_if_not, and sp_instr_set_case_expr.
Definition at line 506 of file sp_head.h.
References m_ip.
Referenced by sp_head::optimize().
00507 { 00508 m_ip= dst; 00509 }
Here is the caller graph for this function:

Reimplemented in sp_instr_jump, sp_instr_jump_if_not, and sp_instr_hpush_jump.
Definition at line 495 of file sp_head.h.
References m_ip.
Referenced by sp_instr_set_case_expr::opt_mark(), sp_instr_hpush_jump::opt_mark(), sp_instr_jump_if_not::opt_mark(), and sp_instr_jump::opt_shortcut_jump().
00496 { 00497 return m_ip; 00498 }
Here is the caller graph for this function:

| virtual void sp_instr::print | ( | String * | str | ) | [pure virtual] |
Implemented in sp_instr_stmt, sp_instr_set, sp_instr_set_trigger_field, sp_instr_jump, sp_instr_jump_if_not, sp_instr_freturn, sp_instr_hpush_jump, sp_instr_hpop, sp_instr_hreturn, sp_instr_cpush, sp_instr_cpop, sp_instr_copen, sp_instr_cclose, sp_instr_cfetch, sp_instr_error, and sp_instr_set_case_expr.
Referenced by sp_head::create(), and sp_head::show_routine_code().
Here is the caller graph for this function:

Definition at line 434 of file sp_head.h.
Referenced by sp_instr_cfetch::print(), sp_instr_cclose::print(), sp_instr_copen::print(), sp_instr_cpush::print(), and sp_instr_set::print().
Definition at line 433 of file sp_head.h.
Referenced by sp_instr_set_case_expr::exec_core(), sp_instr_copen::exec_core(), sp_instr_jump_if_not::exec_core(), sp_instr_set_trigger_field::exec_core(), sp_instr_set::exec_core(), sp_instr_stmt::exec_core(), sp_instr_error::execute(), sp_instr_cfetch::execute(), sp_instr_cclose::execute(), sp_instr_cpop::execute(), sp_instr_cpush::execute(), sp_instr_hpop::execute(), sp_instr_hpush_jump::execute(), sp_instr_stmt::execute(), opt_mark(), sp_instr_set_case_expr::opt_mark(), sp_instr_hpush_jump::opt_mark(), sp_instr_jump_if_not::opt_mark(), sp_instr_jump::opt_mark(), opt_move(), sp_instr_set_case_expr::opt_move(), sp_instr_jump_if_not::opt_move(), sp_instr_jump::opt_move(), sp_instr_hpush_jump::opt_shortcut_jump(), sp_instr_jump_if_not::opt_shortcut_jump(), opt_shortcut_jump(), and sp_head::show_routine_code().
Definition at line 432 of file sp_head.h.
Referenced by sp_instr_error::opt_mark(), sp_instr_freturn::opt_mark(), opt_mark(), sp_instr_set_case_expr::opt_mark(), sp_instr_hreturn::opt_mark(), sp_instr_hpush_jump::opt_mark(), sp_instr_jump_if_not::opt_mark(), sp_instr_jump::opt_mark(), sp_head::opt_mark(), and sp_head::optimize().
1.4.7

