| 803 | |
| 804 | impl<A: Architecture> ConventionBuilder<A> { |
| 805 | pub fn new(arch: &A) -> Self { |
| 806 | Self { |
| 807 | caller_saved_registers: Vec::new(), |
| 808 | callee_saved_registers: Vec::new(), |
| 809 | int_arg_registers: Vec::new(), |
| 810 | float_arg_registers: Vec::new(), |
| 811 | |
| 812 | arg_registers_shared_index: false, |
| 813 | reserved_stack_space_for_arg_registers: false, |
| 814 | stack_adjusted_on_return: false, |
| 815 | is_eligible_for_heuristics: false, |
| 816 | |
| 817 | return_int_reg: None, |
| 818 | return_hi_int_reg: None, |
| 819 | return_float_reg: None, |
| 820 | |
| 821 | global_pointer_reg: None, |
| 822 | |
| 823 | implicitly_defined_registers: Vec::new(), |
| 824 | |
| 825 | are_argument_registers_used_for_var_args: false, |
| 826 | |
| 827 | arch_handle: arch.handle(), |
| 828 | _arch: PhantomData, |
| 829 | } |
| 830 | } |
| 831 | |
| 832 | reg_list!(caller_saved_registers); |
| 833 | reg_list!(callee_saved_registers); |