From: Julian Seward Date: Wed, 16 Jul 2014 23:14:33 +0000 (+0000) Subject: Remove fields from VexAbiInfo that only had relevance to the old AIX5 X-Git-Tag: svn/VALGRIND_3_10_1^2~67 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=61dc0b548bd513600d9cb923006d9a5893a20c3c;p=thirdparty%2Fvalgrind.git Remove fields from VexAbiInfo that only had relevance to the old AIX5 port: guest_ppc_sc_continues_at_LR and host_ppc32_regalign_int64_args. git-svn-id: svn://svn.valgrind.org/vex/trunk@2904 --- diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c index d39debf747..0b8cbffb4f 100644 --- a/VEX/priv/guest_ppc_toIR.c +++ b/VEX/priv/guest_ppc_toIR.c @@ -6066,9 +6066,7 @@ static Bool dis_syslink ( UInt theInstr, /* It's important that all ArchRegs carry their up-to-date value at this point. So we declare an end-of-block here, which forces any TempRegs caching ArchRegs to be flushed. */ - putGST( PPC_GST_CIA, abiinfo->guest_ppc_sc_continues_at_LR - ? getGST( PPC_GST_LR ) - : mkSzImm( ty, nextInsnAddr() )); + putGST( PPC_GST_CIA, mkSzImm( ty, nextInsnAddr() )); dres->whatNext = Dis_StopHere; dres->jk_StopHere = Ijk_Sys_syscall; diff --git a/VEX/priv/host_ppc_isel.c b/VEX/priv/host_ppc_isel.c index 5a4b71b9ea..79070754d4 100644 --- a/VEX/priv/host_ppc_isel.c +++ b/VEX/priv/host_ppc_isel.c @@ -704,12 +704,6 @@ void doHelperCall ( /*OUT*/UInt* stackAdjustAfterCall, UInt nVECRETs = 0; UInt nBBPTRs = 0; - /* Do we need to force use of an odd-even reg pair for 64-bit args? - JRS 31-07-2013: is this still relevant, now that we are not - generating code for 32-bit AIX ? */ - Bool regalign_int64s - = (!mode64) && env->vbi->host_ppc32_regalign_int64_args; - /* Marshal args for a call and do the call. This function only deals with a tiny set of possibilities, which @@ -867,7 +861,7 @@ void doHelperCall ( /*OUT*/UInt* stackAdjustAfterCall, iselWordExpr_R(env, arg) )); } else { // Ity_I64 in 32-bit mode HReg rHi, rLo; - if (regalign_int64s && (argreg%2) == 1) + if ((argreg%2) == 1) // ppc32 ELF abi spec for passing LONG_LONG argreg++; // XXX: odd argreg => even rN vassert(argreg < PPC_N_REGPARMS-1); @@ -943,7 +937,7 @@ void doHelperCall ( /*OUT*/UInt* stackAdjustAfterCall, tmpregs[argreg] = iselWordExpr_R(env, arg); } else { // Ity_I64 in 32-bit mode HReg rHi, rLo; - if (regalign_int64s && (argreg%2) == 1) + if ((argreg%2) == 1) // ppc32 ELF abi spec for passing LONG_LONG argreg++; // XXX: odd argreg => even rN vassert(argreg < PPC_N_REGPARMS-1); diff --git a/VEX/priv/main_main.c b/VEX/priv/main_main.c index 495942ae76..4472cdfcb4 100644 --- a/VEX/priv/main_main.c +++ b/VEX/priv/main_main.c @@ -1248,9 +1248,7 @@ void LibVEX_default_VexAbiInfo ( /*OUT*/VexAbiInfo* vbi ) vbi->guest_amd64_assume_gs_is_0x60 = False; vbi->guest_ppc_zap_RZ_at_blr = False; vbi->guest_ppc_zap_RZ_at_bl = NULL; - vbi->guest_ppc_sc_continues_at_LR = False; vbi->host_ppc_calls_use_fndescrs = False; - vbi->host_ppc32_regalign_int64_args = False; } diff --git a/VEX/pub/libvex.h b/VEX/pub/libvex.h index cf8517370b..2dfb419c41 100644 --- a/VEX/pub/libvex.h +++ b/VEX/pub/libvex.h @@ -301,8 +301,6 @@ void LibVEX_default_VexArchInfo ( /*OUT*/VexArchInfo* vai ); guest_stack_redzone_size guest is ppc32-linux ==> 0 guest is ppc64-linux ==> 288 - guest is ppc32-aix5 ==> 220 - guest is ppc64-aix5 ==> unknown guest is amd64-linux ==> 128 guest is other ==> inapplicable @@ -319,32 +317,16 @@ void LibVEX_default_VexArchInfo ( /*OUT*/VexArchInfo* vai ); guest_ppc_zap_RZ_at_blr guest is ppc64-linux ==> True guest is ppc32-linux ==> False - guest is ppc64-aix5 ==> unknown - guest is ppc32-aix5 ==> False guest is other ==> inapplicable guest_ppc_zap_RZ_at_bl guest is ppc64-linux ==> const True guest is ppc32-linux ==> const False - guest is ppc64-aix5 ==> unknown - guest is ppc32-aix5 ==> True except for calls to - millicode, $SAVEFn, $RESTFn - guest is other ==> inapplicable - - guest_ppc_sc_continues_at_LR: - guest is ppc32-aix5 or ppc64-aix5 ==> True - guest is ppc32-linux or ppc64-linux ==> False guest is other ==> inapplicable host_ppc_calls_use_fndescrs: host is ppc32-linux ==> False host is ppc64-linux ==> True - host is ppc32-aix5 or ppc64-aix5 ==> True - host is other ==> inapplicable - - host_ppc32_regalign_int64_args: - host is ppc32-linux ==> True - host is ppc32-aix5 ==> False host is other ==> inapplicable */ @@ -374,20 +356,10 @@ typedef is assumed equivalent to a fn which always returns False. */ Bool (*guest_ppc_zap_RZ_at_bl)(Addr64); - /* PPC32/PPC64 GUESTS only: where does the kernel resume after - 'sc'? False => Linux style, at the next insn. True => AIX - style, at the address stated in the link register. */ - Bool guest_ppc_sc_continues_at_LR; - /* PPC32/PPC64 HOSTS only: does '&f' give us a pointer to a function descriptor on the host, or to the function code itself? True => descriptor, False => code. */ Bool host_ppc_calls_use_fndescrs; - - /* PPC32 HOSTS only: when generating code to pass a 64-bit value - (actual parameter) in a pair of regs, should we skip an arg - reg if it is even-numbered? True => yes, False => no. */ - Bool host_ppc32_regalign_int64_args; } VexAbiInfo;