Home | History | Annotate | Download | only in testsuite
      1 #!/bin/sh
      2 
      3 # split_x86_64.sh -- test -fstack-split for x86_64
      4 
      5 # Copyright (C) 2009-2014 Free Software Foundation, Inc.
      6 # Written by Ian Lance Taylor <iant (at] google.com>.
      7 
      8 # This file is part of gold.
      9 
     10 # This program is free software; you can redistribute it and/or modify
     11 # it under the terms of the GNU General Public License as published by
     12 # the Free Software Foundation; either version 3 of the License, or
     13 # (at your option) any later version.
     14 
     15 # This program is distributed in the hope that it will be useful,
     16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
     17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     18 # GNU General Public License for more details.
     19 
     20 # You should have received a copy of the GNU General Public License
     21 # along with this program; if not, write to the Free Software
     22 # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
     23 # MA 02110-1301, USA.
     24 
     25 match()
     26 {
     27   if ! egrep "$1" "$2" >/dev/null 2>&1; then
     28     echo 1>&2 "could not find '$1' in $2"
     29     exit 1
     30   fi
     31 }
     32 
     33 nomatch()
     34 {
     35   if egrep "$1" "$2" >/dev/null 2>&1; then
     36     echo 1>&2 "found unexpected '$1' in $2"
     37     exit 1
     38   fi
     39 }
     40 
     41 match 'cmp.*+%fs:[^,]*,%rsp' split_x86_64_1.stdout
     42 match 'callq.*__morestack>?$' split_x86_64_1.stdout
     43 match 'lea.*-0x200\(%rsp\),' split_x86_64_1.stdout
     44 
     45 match 'stc' split_x86_64_2.stdout
     46 match 'callq.*__morestack_non_split>?$' split_x86_64_2.stdout
     47 nomatch 'callq.*__morestack>?$' split_x86_64_2.stdout
     48 match 'lea.*-0x4200\(%rsp\),' split_x86_64_2.stdout
     49 
     50 match 'failed to match' split_x86_64_3.stdout
     51 
     52 match 'callq.*__morestack>?$' split_x86_64_4.stdout
     53 
     54 match 'cannot mix' split_x86_64_r.stdout
     55