#include <stdint.h>#include <limits.h>#include "defs.h"#include "mtypes.h"#include "errors.h"#include "erglob.h"#include "stab.h"#include "config_targ.h"#include "targ_sim.h"#include "targ_sim_body.h"

Go to the source code of this file.
| #define __STDC_LIMIT_MACROS |
Definition at line 60 of file targ_sim.cxx.
| #define TRACE_ENTRY | ( | x | ) |
Definition at line 56 of file targ_sim.cxx.
| #define TRACE_EXIT | ( | x | ) |
Definition at line 57 of file targ_sim.cxx.
| #define TRACE_EXIT_i | ( | x, | |||
| i | ) |
Definition at line 58 of file targ_sim.cxx.
| INT Classify_Aggregate | ( | const TY_IDX | ty, | |
| enum X86_64_PARM_CLASS | classes[MAX_CLASSES] | |||
| ) |
Definition at line 190 of file targ_sim.cxx.
References Classify_Aggregate(), FALSE, FLD_last_field(), FLD_ofst, FLD_type, FmtAssert, i, INT, KIND_ARRAY, KIND_STRUCT, Make_fld_iter(), Merge_Classes(), MTYPE_A4, MTYPE_A8, MTYPE_C4, MTYPE_C8, MTYPE_CQ, MTYPE_F4, MTYPE_F8, MTYPE_FQ, MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_I8, MTYPE_name, MTYPE_U1, MTYPE_U2, MTYPE_U4, MTYPE_U8, n, subclasses, TY_etype, TY_fld, TY_is_non_pod(), TY_kind, TY_mtype, TY_size, X86_64_INTEGER_CLASS, X86_64_MEMORY_CLASS, X86_64_NO_CLASS, X86_64_SSE_CLASS, X86_64_SSEUP_CLASS, and X86_64_X87_CLASS.
Referenced by Classify_Aggregate(), Get_Parameter_Location(), Get_Return_Info(), WFE_Expand_Expr(), and WGEN_Expand_Expr().
Definition at line 708 of file targ_sim.cxx.
References Classify_Aggregate(), Current_Param_Num, FALSE, Fix_TY_mtype(), FmtAssert, Get_Current_PU, INT, Is_Target_32bit, KIND_VOID, Last_Param_Offset, MM0, MM1, MM2, MTYPE_A4, MTYPE_A8, MTYPE_C4, MTYPE_C8, MTYPE_CQ, MTYPE_F4, MTYPE_F8, MTYPE_FQ, MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_I8, MTYPE_is_vector, MTYPE_M, MTYPE_name, MTYPE_RegisterSize, MTYPE_U1, MTYPE_U2, MTYPE_U4, MTYPE_U8, n, PR_first_reg, PR_last_reg, psize, PU_cxx_lang(), RAX, RCX, RDX, PLOC::reg, SIM_INFO, PLOC::size, PLOC::start_offset, Target_MMX, Target_SSE, TY_kind, TY_size, TYPE_ID, PLOC::vararg_reg, X86_64_INTEGER_CLASS, X86_64_SSE_CLASS, XMM0, XMM1, and XMM2.
| RETURN_INFO Get_Return_Info | ( | TY_IDX | rtype, | |
| Mtype_Return_Level | level, | |||
| BOOL | ff2c_abi | |||
| ) |
Definition at line 371 of file targ_sim.cxx.
References BOOL, Classify_Aggregate(), RETURN_INFO::count, Fail_FmtAssertion(), FALSE, First_X87_Preg_Return_Offset, Get_Current_PU, i, info, INT, INT32, INT64, Is_Target_32bit, Last_X87_Preg_Return_Offset, MAX_NUMBER_OF_REGISTERS_FOR_RETURN, MM0, RETURN_INFO::mtype, mtype, MTYPE_A4, MTYPE_A8, MTYPE_C4, MTYPE_C8, Mtype_complex_to_real(), MTYPE_CQ, MTYPE_F4, MTYPE_F8, MTYPE_FQ, MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_I8, MTYPE_M, MTYPE_name, MTYPE_U1, MTYPE_U2, MTYPE_U4, MTYPE_U8, MTYPE_UNKNOWN, MTYPE_V, n, No_Simulated, PR_first_reg, PR_last_reg, PR_skip_value, RETURN_INFO::preg, PU_c_lang(), PU_cxx_lang(), PU_prototype(), RETURN_INFO::return_via_first_arg, SIM_INFO, size, Target_MMX, Target_SSE, TRUE, TY_mtype, TY_size, Ty_Table, TYPE_ID, Use_Simulated, X86_64_SSE_CLASS, and XMM0.
| void Get_Return_Mtypes | ( | TY_IDX | rtype, | |
| Mtype_Return_Level | level, | |||
| TYPE_ID * | mreg1, | |||
| TYPE_ID * | mreg2 | |||
| ) |
Definition at line 958 of file targ_sim.cxx.
References FALSE, PSTRUCT::first_call, MIN, pstruct, PLOC::reg, PSTRUCT::size, PLOC::size, and PLOC::start_offset.
Definition at line 982 of file targ_sim.cxx.
References Current_Param_Num, MAX_NUMBER_OF_FLOAT_REGISTER_PARAMETERS, MAX_NUMBER_OF_INT_REGISTER_PARAMETERS, MTYPE_RegisterSize, next, PR_first_reg, PLOC::reg, SIM_INFO, and PLOC::size.
Definition at line 145 of file targ_sim.cxx.
References First_Float_Preg_Param_Offset, First_Int_Preg_Param_Offset, First_MMX_Preg_Return_Offset, Last_Float_Preg_Param_Offset, Last_Int_Preg_Param_Offset, Last_MMX_Preg_Return_Offset, and MAX_NUMBER_OF_REGISTER_PARAMETERS.
Definition at line 137 of file targ_sim.cxx.
References Fail_FmtAssertion(), MAX_NUMBER_OF_REGISTER_PARAMETERS, and Output_Base_Preg.
Definition at line 123 of file targ_sim.cxx.
References First_Float_Preg_Return_Offset, First_Int_Preg_Return_Offset, First_MMX_Preg_Return_Offset, First_X87_Preg_Return_Offset, Last_Float_Preg_Return_Offset, Last_Int_Preg_Return_Offset, Last_MMX_Preg_Return_Offset, and Last_X87_Preg_Return_Offset.
| static enum X86_64_PARM_CLASS Merge_Classes | ( | enum X86_64_PARM_CLASS | class1, | |
| enum X86_64_PARM_CLASS | class2 | |||
| ) | [static] |
Definition at line 157 of file targ_sim.cxx.
References X86_64_INTEGER_CLASS, X86_64_MEMORY_CLASS, X86_64_NO_CLASS, X86_64_SSE_CLASS, X86_64_X87_CLASS, and X86_64_X87UP_CLASS.
Referenced by Classify_Aggregate().
Definition at line 670 of file targ_sim.cxx.
References Current_Param_Num, Get_Return_Info(), idx, info, INT_MAX, Is_Target_32bit, KIND_FUNCTION, Last_Fixed_Param, Last_Param_Offset, No_Simulated, TY_has_prototype, TY_is_varargs, TY_kind, TY_ret_type, TY_return_to_param, TY_tylist(), and Tylist_Table.
Definition at line 951 of file targ_sim.cxx.
References PSTRUCT::first_call, pstruct, PSTRUCT::size, TRUE, and TY_size.
INT Current_Float_Param_Num = -1 [static] |
Definition at line 661 of file targ_sim.cxx.
INT Current_Int_Param_Num = -1 [static] |
Definition at line 660 of file targ_sim.cxx.
INT Current_MMX_Param_Num = -1 [static] |
Definition at line 662 of file targ_sim.cxx.
Definition at line 1006 of file targ_sim.cxx.
Definition at line 1004 of file targ_sim.cxx.
| const INT MMX_Register_Parms_Allowed = 3 |
Definition at line 666 of file targ_sim.cxx.
Definition at line 948 of file targ_sim.cxx.
INT Register_Parms = 0 [static] |
Definition at line 663 of file targ_sim.cxx.
Definition at line 77 of file targ_sim.cxx.
BOOL SSE_Register_Parms = FALSE [static] |
Definition at line 664 of file targ_sim.cxx.
| const INT SSE_Register_Parms_Allowed = 3 |
Definition at line 665 of file targ_sim.cxx.
Definition at line 1007 of file targ_sim.cxx.
1.5.6