about summary refs log tree commit diff stats
path: root/linux/bootstrap/021div.cc
blob: 15ed89d83d847d4e8b35ce9c3ffe5655f58bc82f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//: helper for division operations: sign-extend EAX into EDX

:(before "End Initialize Op Names")
put_new(Name, "99", "sign-extend EAX into EDX (cdq)");

:(code)
void test_cdq() {
  Reg[EAX].i = 10;
  run(
      "== code 0x1\n"
      "99\n"
  );
  CHECK_TRACE_CONTENTS(
      "run: sign-extend EAX into EDX\n"
      "run: EDX is now 0x00000000\n"
  );
}

:(before "End Single-Byte Opcodes")
case 0x99: {  // sign-extend EAX into EDX
  trace(Callstack_depth+1, "run") << "sign-extend EAX into EDX" << end();
  Reg[EDX].i = (Reg[EAX].i < 0) ? -1 : 0;
  trace(Callstack_depth+1, "run") << "EDX is now 0x" << HEXWORD << Reg[EDX].u << end();
  break;
}

:(code)
void test_cdq_negative() {
  Reg[EAX].i = -10;
  run(
      "== code 0x1\n"
      "99\n"
  );
  CHECK_TRACE_CONTENTS(
      "run: sign-extend EAX into EDX\n"
      "run: EDX is now 0xffffffff\n"
  );
}
erations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default //collaboration diagram settings show_full_operations_definition default show_hierarchical_rank default write_horizontally default drawing_language default package_name_in_tab default show_context default draw_all_relations default shadow default show_stereotype_properties default //object diagram settings write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default show_stereotype_properties default //sequence diagram settings show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default show_stereotype_properties default //state diagram settings package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition default draw_all_relations default shadow default show_activities default region_horizontally default drawing_language default show_stereotype_properties default //class settings //activity diagram settings package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default show_infonote default drawing_language default show_stereotype_properties default class 149250 "curses" visibility protected cpp_decl "" java_decl "" php_decl "" python_2_2 python_decl "class ${name}${inherit}: ${docstring}${members} " idl_decl "" explicit_switch_type "" classrelation 171010 // <association> relation_ref 169986 // <association> end operation 141570 "initscr" public explicit_return_type "" nparams 0 python_def "${@}${static}${abstract}def ${name}${(}${)}: ${docstring}${body} " end operation 141698 "endwin" public explicit_return_type "" nparams 0 python_def "${@}${static}${abstract}def ${name}${(}${)}: ${docstring}${body} " end operation 171778 "getch" public explicit_return_type "" nparams 0 python_def "${@}${static}${abstract}def ${name}${(}${)}: ${docstring}${body} " end end class 162690 "os" visibility package cpp_decl "" java_decl "" php_decl "" python_2_2 python_decl "class ${name}${inherit}: ${docstring}${members} " idl_decl "" explicit_switch_type "" operation 156418 "listdir" public explicit_return_type "" nparams 0 python_def "${@}${static}${abstract}def ${name}${(}${)}: ${docstring}${body} " end operation 156674 "stat" public explicit_return_type "" nparams 0 python_def "${@}${static}${abstract}def ${name}${(}${)}: ${docstring}${body} " end classrelation 186626 // <association> relation 184706 ---- a role_name "" private python "${comment}${self}${name} = ${value} " classrelation_ref 186626 // <association> b role_name "" private python "${comment}${self}${name} = ${value} " classrelation_ref 186754 // <association> end end end end