)]}'
{
  "commit": "9c021aef485a27ad32974a69e9cb042baef2fe0c",
  "tree": "094d627cce039050382061433239cfaf8bf61fba",
  "parents": [
    "dd327181e96b8bc4d9bd97aa8d3d7fe01bf29628"
  ],
  "author": {
    "name": "Jens Remus",
    "email": "jremus@linux.ibm.com",
    "time": "Fri Mar 01 12:45:14 2024 +0100"
  },
  "committer": {
    "name": "Jens Remus",
    "email": "jremus@linux.ibm.com",
    "time": "Fri Mar 01 12:45:14 2024 +0100"
  },
  "message": "s390: Correct setting of highgprs flag in ELF output\n\nThe combination of an architecture size of 32 bits and z/Architecture\nmode requires the highgprs flag to be set in the ELF output. It causes\nthe high-halves of the general purpose registers (GPRs) to be preserved\nat run-time, so that the code can use 64-bit GPRs.\n\nThe architecture size of 32 bits can either be the default in case of\na default architecture name of \"s390\" or due to specification of the\noption -m31 (to generate the 31-bit file format).\nThe z/Architecture mode can either be the default or due to\nspecification of the option -mzarch (to assemble for z/Architecture\nmode). It can also be selected using the pseudo commands\n\".machinemode zarch\" and \".machinemode zarch_nohighgprs\". The latter\nnot causing the highgprs flag to be set.\n\nThe highgprs flag was only set when the following s390-specific\nassembler options were given in the following specific order:\n\"-m31 -mzarch\".\n\nThe highgprs flag was erroneously not set when:\n- the order of above options was inverse (i.e. \"-mzarch -m31\"),\n- the architecture mode defaulted to z/Architecture mode and\n  option \"-m31\" was specified,\n- the architecture size defaulted to 32 bits due to a default\n  architecture name of \"s390\" and option -mzarch was specified,\n- the architecture size defaulted to 32 bits and the architecture\n  mode defaulted to z/Architecture due to the specified processor\n  (e.g. \"-march\u003dz900\" or follow-on processor).\n\nDetermine whether to set the highgprs flag in init_default_arch() after\nhaving processed all assembler options in md_parse_option(). This\nensures the flag is set in all of the above cases it was erroneously not\nset. Add test cases for highgprs flag, including ones that use\n.machinemode to switch the architecture mode.\n\ngas/\n\t* config/tc-s390.c: Correct setting of highgprs flag in ELF\n\toutput.\n\t* testsuite/gas/s390/s390.exp: Add test cases for highgprs\n\tflag.\n\t* testsuite/gas/s390/blank.s: Empty assembler source used in\n\ttest cases for \"highgprs\" flag.\n\t* testsuite/gas/s390/esa-highgprs-0.d: Add test case for\n\thighgprs flag.\n\t* testsuite/gas/s390/zarch-highgprs-0.d: Likewise.\n\t* testsuite/gas/s390/zarch-highgprs-1.d: Likewise.\n\t* testsuite/gas/s390/esa-highgprs-machinemode-0.s: Add test case\n\tfor highgprs flag when using .machinemode to switch\n\tarchitecture mode.\n\t* testsuite/gas/s390/esa-highgprs-machinemode-0.d: Likewise.\n\t* testsuite/gas/s390/esa-highgprs-machinemode-1.s: Likewise.\n\t* testsuite/gas/s390/esa-highgprs-machinemode-1.d: Likewise.\n\nReviewed-by: Andreas Krebbel \u003ckrebbel@linux.ibm.com\u003e\nSigned-off-by: Jens Remus \u003cjremus@linux.ibm.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cfe98b5e94bec3ec18b5f5009c85bfe53e72c92a",
      "old_mode": 33188,
      "old_path": "gas/config/tc-s390.c",
      "new_id": "55a5873edc18cecbad25590bbb0215448b00a959",
      "new_mode": 33188,
      "new_path": "gas/config/tc-s390.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/s390/blank.s"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "aa9eff70cfeb93823f15f4163ec6194120606d28",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/s390/esa-highgprs-0.d"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "483342f3f8bdb2851d898acb3d2c505d6d32dcbc",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/s390/esa-highgprs-machinemode-0.d"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "60d9e3f567815be5c8d6f72c7405f3f2272817b5",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/s390/esa-highgprs-machinemode-0.s"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c1adc1603b2356e3fc9c818597d4d1363c14950c",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/s390/esa-highgprs-machinemode-1.d"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c46b95b7e95d1c2e18c930fa040ce5b1bd8407da",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/s390/esa-highgprs-machinemode-1.s"
    },
    {
      "type": "modify",
      "old_id": "7fbc7f8a7515d8967544d179e8a702831051730b",
      "old_mode": 33188,
      "old_path": "gas/testsuite/gas/s390/s390.exp",
      "new_id": "b63c09e40324070822c9849071cdb574bce6e5a9",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/s390/s390.exp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "53cc3e0576527f73f61b4b04ad6c1cc430d0ce02",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/s390/zarch-highgprs-0.d"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d351032fbc47038380f594b6adfe4e55697cef4d",
      "new_mode": 33188,
      "new_path": "gas/testsuite/gas/s390/zarch-highgprs-1.d"
    }
  ]
}
