]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Remove fields from VexAbiInfo that only had relevance to the old AIX5
authorJulian Seward <jseward@acm.org>
Wed, 16 Jul 2014 23:14:33 +0000 (23:14 +0000)
committerJulian Seward <jseward@acm.org>
Wed, 16 Jul 2014 23:14:33 +0000 (23:14 +0000)
port: guest_ppc_sc_continues_at_LR and host_ppc32_regalign_int64_args.

git-svn-id: svn://svn.valgrind.org/vex/trunk@2904

VEX/priv/guest_ppc_toIR.c
VEX/priv/host_ppc_isel.c
VEX/priv/main_main.c
VEX/pub/libvex.h

index d39debf74732bb6e26599d0317e47ada4520322f..0b8cbffb4f26876ad89ce3ed86e76bddef6b639c 100644 (file)
@@ -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;
index 5a4b71b9ea03de3cb57d7a9b8f4b1512b0776e08..79070754d479829ecbd72ba9dcc32397a9a39d6a 100644 (file)
@@ -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);
index 495942ae76e94a756ca95588c6f684ff438a384c..4472cdfcb4e85acce7e6092a4e9916c050026acb 100644 (file)
@@ -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;
 }
 
 
index cf8517370b2576b74e3f6e0140a375068c7f1165..2dfb419c41bc2b4e2e3d89a06d2449da2d230652 100644 (file)
@@ -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;