)]}'
{
  "commit": "5bff61c44841990680781892036adb17b3cff0c4",
  "tree": "bb351f5c16193d6c8641f35f2d931839842086ef",
  "parents": [
    "562233c890ea6d2a834962edf3ccf9db14356683"
  ],
  "author": {
    "name": "Jim Stichnoth",
    "email": "stichnot@chromium.org",
    "time": "Wed Oct 28 09:26:00 2015 -0700"
  },
  "committer": {
    "name": "Jim Stichnoth",
    "email": "stichnot@chromium.org",
    "time": "Wed Oct 28 09:26:00 2015 -0700"
  },
  "message": "Sets the stage for enabling the use of the 8-bit high registers, but doesn\u0027t yet turn it on because more work is needed for correctness.\n\nIn the lowering, typing is tightened up so that we don\u0027t specify e.g. eax when we really mean ax or al.  This gets rid of the ShiftHack hack.  The one exception is the pinsr instruction which always requires an r32 register even if the memory operand is m8 or m16.\n\nThe x86 assembler unit tests are fixed, by not passing a GlobalContext arg to the Assembler ctor.\n\nMany constexpr and \"auto *\" upgrades are applied.  Sorry for not putting this into a separate CL - a few local fixes got out of hand...\n\nTested in the following ways:\n- \"make check-lit\" - some .ll CHECK line changes due to register randomization\n- \"make check-xtest\"\n- \"make check-xtest\" with forced filetype\u003dasm (via local .py hack)\n- spec2k with all -filetype options\n- compare before-and-after spec2k filetype\u003dasm output - a few differences where the correct narrow register is used instead of the full-width register\n\nTo do in the next CL:\n\n1. Add new register classes:\n  (a) 32-bit GPR truncable to 8-bit (eax, ecx, edx, ebx)\n  (b) 16-bit GPR truncable to 8-bit (ax, cx, dx, bx)\n  (c) 8-bit truncable from 16/32-bit (al, bl, cl, dl)\n  (c) 8-bit \"mov\"able from ah/bh/ch/dh\n\n2. Enable use of ah/bh/ch/dh for x86-32.\n\n3. Enable use of ah (but skip bh/ch/dh) for x86-64.\n\n4. Statically initialize register tables in the TargetLowering subclass.\n\nBUG\u003d none\nR\u003djpp@chromium.org, kschimpf@google.com\n\nReview URL: https://codereview.chromium.org/1419903002 .\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "022847632f9dfc8dbfe4b5818c9a64ca608a65cf",
      "old_mode": 33188,
      "old_path": "src/IceAssembler.cpp",
      "new_id": "480eb30c2917ed0f0fdc28d1c6bd7be0f591e62b",
      "new_mode": 33188,
      "new_path": "src/IceAssembler.cpp"
    },
    {
      "type": "modify",
      "old_id": "d05660f58bb44b24e85bd03414f0a58729d1a6e6",
      "old_mode": 33188,
      "old_path": "src/IceAssembler.h",
      "new_id": "599a0a0d4bb1db807de022a30e0d7571052891b9",
      "new_mode": 33188,
      "new_path": "src/IceAssembler.h"
    },
    {
      "type": "modify",
      "old_id": "eb785ffa27c704484518a52cff8d5195979651a2",
      "old_mode": 33188,
      "old_path": "src/IceAssemblerARM32.cpp",
      "new_id": "8fe8f439a3d5d60f78e40294ab9df419bb5557ea",
      "new_mode": 33188,
      "new_path": "src/IceAssemblerARM32.cpp"
    },
    {
      "type": "modify",
      "old_id": "d4c58af930eae4fb2af3369b20175fcecb5b405a",
      "old_mode": 33188,
      "old_path": "src/IceAssemblerARM32.h",
      "new_id": "0b9c756b813bfb7d592f5942c41a25c244df4b39",
      "new_mode": 33188,
      "new_path": "src/IceAssemblerARM32.h"
    },
    {
      "type": "modify",
      "old_id": "7cf3ee5fa1c4745b8aa556c3f3c1235869def124",
      "old_mode": 33188,
      "old_path": "src/IceAssemblerMIPS32.h",
      "new_id": "1d46b914691f7994559e15afab61598af7337b2e",
      "new_mode": 33188,
      "new_path": "src/IceAssemblerMIPS32.h"
    },
    {
      "type": "modify",
      "old_id": "3672ecde843844faea5b17de8ee90a6d97fd06b3",
      "old_mode": 33188,
      "old_path": "src/IceAssemblerX8632.h",
      "new_id": "fb9eedf9a81e0d5255d508cb5f7fead37c4dc0a6",
      "new_mode": 33188,
      "new_path": "src/IceAssemblerX8632.h"
    },
    {
      "type": "modify",
      "old_id": "43b50be75cebb3364bddcfd8cfca12e4cebf73b2",
      "old_mode": 33188,
      "old_path": "src/IceAssemblerX8664.h",
      "new_id": "566681016e10d1d687eb134e709b9baeb70446dc",
      "new_mode": 33188,
      "new_path": "src/IceAssemblerX8664.h"
    },
    {
      "type": "modify",
      "old_id": "a7db6efb5f3fe6005575c9f206a0baaed54c8142",
      "old_mode": 33188,
      "old_path": "src/IceAssemblerX86Base.h",
      "new_id": "3823f0d1693b93035160813b3ddcebb0969e82e1",
      "new_mode": 33188,
      "new_path": "src/IceAssemblerX86Base.h"
    },
    {
      "type": "modify",
      "old_id": "4d5705f02b5c3d76d6545c27a3aae7b8c6a06040",
      "old_mode": 33188,
      "old_path": "src/IceBrowserCompileServer.cpp",
      "new_id": "94b991ad5469556144f01b2130c0c8eec1071641",
      "new_mode": 33188,
      "new_path": "src/IceBrowserCompileServer.cpp"
    },
    {
      "type": "modify",
      "old_id": "a1c4b5f7e17774b706c6cb40350fbab18dcadf06",
      "old_mode": 33188,
      "old_path": "src/IceCfg.cpp",
      "new_id": "57b1e739193cb017068e32fd9afad1047c69951b",
      "new_mode": 33188,
      "new_path": "src/IceCfg.cpp"
    },
    {
      "type": "modify",
      "old_id": "71a0384c674e31881206f8c99474eb6aefa3e241",
      "old_mode": 33188,
      "old_path": "src/IceCfgNode.cpp",
      "new_id": "f9fa29de440295180d8686931908b830bc8d63cd",
      "new_mode": 33188,
      "new_path": "src/IceCfgNode.cpp"
    },
    {
      "type": "modify",
      "old_id": "14eafa9d2877cd3e6f582e5bd6d7d2670b659eed",
      "old_mode": 33188,
      "old_path": "src/IceCfgNode.h",
      "new_id": "dbc2cce5a7a17d6713c93eef76241344bc349d45",
      "new_mode": 33188,
      "new_path": "src/IceCfgNode.h"
    },
    {
      "type": "modify",
      "old_id": "b4b6c89a758a06eb51f3d8beac8d932166f4eaa5",
      "old_mode": 33188,
      "old_path": "src/IceCompiler.cpp",
      "new_id": "fdd97563ab5473349dbde4093b9dd59866d26ee4",
      "new_mode": 33188,
      "new_path": "src/IceCompiler.cpp"
    },
    {
      "type": "modify",
      "old_id": "eb09687a9a8669bf338e34d0a12061dc0df8ecdd",
      "old_mode": 33188,
      "old_path": "src/IceConditionCodesX8632.h",
      "new_id": "e17bf695acc4c66b2f3fb2506a8defb75cd8bf70",
      "new_mode": 33188,
      "new_path": "src/IceConditionCodesX8632.h"
    },
    {
      "type": "modify",
      "old_id": "d1d9dd8aeb342ac49cf65650690261cdee231751",
      "old_mode": 33188,
      "old_path": "src/IceConditionCodesX8664.h",
      "new_id": "1875beb4555b21e885b0d2c246b85986d8c2a671",
      "new_mode": 33188,
      "new_path": "src/IceConditionCodesX8664.h"
    },
    {
      "type": "modify",
      "old_id": "a84ae2cf69d4e2004ed508f82305a148c82619e7",
      "old_mode": 33188,
      "old_path": "src/IceConverter.cpp",
      "new_id": "89fa2e3618242c8f7c1ee49212efac90c85b4548",
      "new_mode": 33188,
      "new_path": "src/IceConverter.cpp"
    },
    {
      "type": "modify",
      "old_id": "202ab0e208d65bea7abd5ed1ad9bfe8729870411",
      "old_mode": 33188,
      "old_path": "src/IceELFObjectWriter.cpp",
      "new_id": "2ea97d76bb4f6ebece56926e7b2ae7191c9f2345",
      "new_mode": 33188,
      "new_path": "src/IceELFObjectWriter.cpp"
    },
    {
      "type": "modify",
      "old_id": "ddc79796ac72dd483badb56de1bc6148ae207342",
      "old_mode": 33188,
      "old_path": "src/IceFixups.cpp",
      "new_id": "305e695659b2f428c0c958c7f98da3089a0d962f",
      "new_mode": 33188,
      "new_path": "src/IceFixups.cpp"
    },
    {
      "type": "modify",
      "old_id": "7b54febe5f83d90f3b6f43523386cb19bc56e5e7",
      "old_mode": 33188,
      "old_path": "src/IceGlobalContext.cpp",
      "new_id": "be3d443489d23e76b98c29dd15fc976beff9a660",
      "new_mode": 33188,
      "new_path": "src/IceGlobalContext.cpp"
    },
    {
      "type": "modify",
      "old_id": "abd814468db779a16c4ed48779faef45cb804d83",
      "old_mode": 33188,
      "old_path": "src/IceInst.h",
      "new_id": "5e32904d470ac96be13b4d570178d6cbf218a7e5",
      "new_mode": 33188,
      "new_path": "src/IceInst.h"
    },
    {
      "type": "modify",
      "old_id": "d2cd6efbc4464922b84384e59acc82274ba63336",
      "old_mode": 33188,
      "old_path": "src/IceInstARM32.cpp",
      "new_id": "a3c7c1d5f0f36080583b08a77de46cbb11aae07d",
      "new_mode": 33188,
      "new_path": "src/IceInstARM32.cpp"
    },
    {
      "type": "modify",
      "old_id": "0ceb4a4c6a82a4205a1b696d9b6d4619388e672b",
      "old_mode": 33188,
      "old_path": "src/IceInstARM32.def",
      "new_id": "291a64af37cb0f912620f708efd4bb2be74ae5c8",
      "new_mode": 33188,
      "new_path": "src/IceInstARM32.def"
    },
    {
      "type": "modify",
      "old_id": "0837eef1851522bab755c9f1d271ed9fab1fbf1e",
      "old_mode": 33188,
      "old_path": "src/IceInstX8632.cpp",
      "new_id": "b4e597292a4712f92ba78694ba3495cc4e7640a5",
      "new_mode": 33188,
      "new_path": "src/IceInstX8632.cpp"
    },
    {
      "type": "modify",
      "old_id": "44310d70172fdf03828efff9c980caa7a870b35b",
      "old_mode": 33188,
      "old_path": "src/IceInstX8632.def",
      "new_id": "dd70082227e989ab874ae3b2c60becfde81d6935",
      "new_mode": 33188,
      "new_path": "src/IceInstX8632.def"
    },
    {
      "type": "modify",
      "old_id": "bf38f1bfd82669508c70421b951fb27ff88a99ec",
      "old_mode": 33188,
      "old_path": "src/IceInstX8664.cpp",
      "new_id": "5c96aeafc37af2841dfcd943e1ee27d551a5e16d",
      "new_mode": 33188,
      "new_path": "src/IceInstX8664.cpp"
    },
    {
      "type": "modify",
      "old_id": "7ad1eaa125fb5d63a0b99b237a71c397c792e9a0",
      "old_mode": 33188,
      "old_path": "src/IceInstX8664.def",
      "new_id": "b3f452f438036d2acd1ae25e0b49011eaa6eab6e",
      "new_mode": 33188,
      "new_path": "src/IceInstX8664.def"
    },
    {
      "type": "modify",
      "old_id": "f93ac2bbcb1c82b29de409a42299185a8473272c",
      "old_mode": 33188,
      "old_path": "src/IceInstX86Base.h",
      "new_id": "d18c746cac6eaa2aa7d3c264261be6048881a023",
      "new_mode": 33188,
      "new_path": "src/IceInstX86Base.h"
    },
    {
      "type": "modify",
      "old_id": "0f1ddd379c6e8e3225790cfa9abd391943b22864",
      "old_mode": 33188,
      "old_path": "src/IceInstX86BaseImpl.h",
      "new_id": "6428f53642272f70413d5a0d16c0ae8b69d215ab",
      "new_mode": 33188,
      "new_path": "src/IceInstX86BaseImpl.h"
    },
    {
      "type": "modify",
      "old_id": "208c3c137adaffecf920cae3d130f88d7a27481c",
      "old_mode": 33188,
      "old_path": "src/IceIntrinsics.h",
      "new_id": "11db543e14cffe1bf02ce8aeaab5f15b8c98bea5",
      "new_mode": 33188,
      "new_path": "src/IceIntrinsics.h"
    },
    {
      "type": "modify",
      "old_id": "66321c29f1c7e4f5347f858a63e939ce9bbd855d",
      "old_mode": 33188,
      "old_path": "src/IceOperand.cpp",
      "new_id": "e66a995d788dfdf672946739f9553dad44fc26d1",
      "new_mode": 33188,
      "new_path": "src/IceOperand.cpp"
    },
    {
      "type": "modify",
      "old_id": "ea56b29f93269c31d2db3b584f7b16bc6d40dfaf",
      "old_mode": 33188,
      "old_path": "src/IceOperand.h",
      "new_id": "0addc883b41ed860d8c1c683b5bf956bc05cec40",
      "new_mode": 33188,
      "new_path": "src/IceOperand.h"
    },
    {
      "type": "modify",
      "old_id": "19576452c959b114aab59b92810875b9f3de151c",
      "old_mode": 33188,
      "old_path": "src/IcePhiLoweringImpl.h",
      "new_id": "d65620eb9cc090d10327a2d88595a36d53a2f124",
      "new_mode": 33188,
      "new_path": "src/IcePhiLoweringImpl.h"
    },
    {
      "type": "modify",
      "old_id": "908020f860b51cf38fccf4005faee0ed77cdd7bf",
      "old_mode": 33188,
      "old_path": "src/IceRegAlloc.cpp",
      "new_id": "6b8656b76e2aaef589d1592bc9b126aab65cdfc0",
      "new_mode": 33188,
      "new_path": "src/IceRegAlloc.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4b21044212621ffb45d44730cafd020d5139cde0",
      "new_mode": 33188,
      "new_path": "src/IceRegList.h"
    },
    {
      "type": "modify",
      "old_id": "73492ef52bda07de53df87c5ead823b9c8088850",
      "old_mode": 33188,
      "old_path": "src/IceRegistersX8632.h",
      "new_id": "3fa07f8431e9f94e3be44033c2ba077c7204a793",
      "new_mode": 33188,
      "new_path": "src/IceRegistersX8632.h"
    },
    {
      "type": "modify",
      "old_id": "3a10f00e26794c7730bd182891e17c4c9912459b",
      "old_mode": 33188,
      "old_path": "src/IceRegistersX8664.h",
      "new_id": "d9ca1f95bf44edaa672217f02f05716334c45ea8",
      "new_mode": 33188,
      "new_path": "src/IceRegistersX8664.h"
    },
    {
      "type": "modify",
      "old_id": "585f3722fd3a508df2ba4958d0d19b8d8572718f",
      "old_mode": 33188,
      "old_path": "src/IceTargetLowering.cpp",
      "new_id": "4902a3d64a8637a75decad7d1012ee626cd608a9",
      "new_mode": 33188,
      "new_path": "src/IceTargetLowering.cpp"
    },
    {
      "type": "modify",
      "old_id": "282fde154364fc3883ac1497e7bb4b01068db8c4",
      "old_mode": 33188,
      "old_path": "src/IceTargetLoweringARM32.cpp",
      "new_id": "a15b4f69cd539197b6ecf8e30717a5c88a58d303",
      "new_mode": 33188,
      "new_path": "src/IceTargetLoweringARM32.cpp"
    },
    {
      "type": "modify",
      "old_id": "a7e579e0e96b0c50b1508b0f6b969d8764fb4dcf",
      "old_mode": 33188,
      "old_path": "src/IceTargetLoweringMIPS32.cpp",
      "new_id": "2bfdf7252acd2e832757fc42d5024e7319b1e45c",
      "new_mode": 33188,
      "new_path": "src/IceTargetLoweringMIPS32.cpp"
    },
    {
      "type": "modify",
      "old_id": "dfb42d8392ec5105284990bc10aba62a5dbc26fc",
      "old_mode": 33188,
      "old_path": "src/IceTargetLoweringX8632.cpp",
      "new_id": "6fab884abc42575d595145558d831b93e31a326e",
      "new_mode": 33188,
      "new_path": "src/IceTargetLoweringX8632.cpp"
    },
    {
      "type": "modify",
      "old_id": "68725479f315be7548d93c74a67804bd4b313632",
      "old_mode": 33188,
      "old_path": "src/IceTargetLoweringX8632Traits.h",
      "new_id": "1c92bedae9c679635387dba03c6485e2df4bd156",
      "new_mode": 33188,
      "new_path": "src/IceTargetLoweringX8632Traits.h"
    },
    {
      "type": "modify",
      "old_id": "4f1c6e4c9b6d54bce19ee2ef7d905fc61aa76be2",
      "old_mode": 33188,
      "old_path": "src/IceTargetLoweringX8664Traits.h",
      "new_id": "331f07677ca9c3ad54d89a0da50e4434879c2b32",
      "new_mode": 33188,
      "new_path": "src/IceTargetLoweringX8664Traits.h"
    },
    {
      "type": "modify",
      "old_id": "09bc6dde0a0a0e819b0e2a029e4c6d488a671412",
      "old_mode": 33188,
      "old_path": "src/IceTargetLoweringX86BaseImpl.h",
      "new_id": "1ad9b2941799f01b340cbfff45cbe1d9f6ea2775",
      "new_mode": 33188,
      "new_path": "src/IceTargetLoweringX86BaseImpl.h"
    },
    {
      "type": "modify",
      "old_id": "133cd412b24e7c2ed2e3e08d61fe5af2596d3483",
      "old_mode": 33188,
      "old_path": "src/IceTimerTree.cpp",
      "new_id": "bcf8eaf0208fe3cbebcfb8a905229a3543b4a7d0",
      "new_mode": 33188,
      "new_path": "src/IceTimerTree.cpp"
    },
    {
      "type": "modify",
      "old_id": "51e4b72e980f105c473b58334a43e5c6203cf0d0",
      "old_mode": 33188,
      "old_path": "tests_lit/llvm2ice_tests/randomize-regalloc.ll",
      "new_id": "e84740ab67f7ac83e483a07edff55e21996d7f0a",
      "new_mode": 33188,
      "new_path": "tests_lit/llvm2ice_tests/randomize-regalloc.ll"
    },
    {
      "type": "modify",
      "old_id": "aa615309888ca45827ea0026e2b7c93779718c6f",
      "old_mode": 33188,
      "old_path": "tests_lit/llvm2ice_tests/rng.ll",
      "new_id": "036b91b57035e48ac88aaec45b75904b668a8713",
      "new_mode": 33188,
      "new_path": "tests_lit/llvm2ice_tests/rng.ll"
    },
    {
      "type": "modify",
      "old_id": "309e345983a11335af157ffba04d609cf3b88431",
      "old_mode": 33188,
      "old_path": "unittest/AssemblerX8632/GPRArith.cpp",
      "new_id": "e6ef73afbf84d6de42a8b4d788b0198dbc8c5d28",
      "new_mode": 33188,
      "new_path": "unittest/AssemblerX8632/GPRArith.cpp"
    },
    {
      "type": "modify",
      "old_id": "1f01e8e3b496a5075b3d08fc0f8436fc387324c9",
      "old_mode": 33188,
      "old_path": "unittest/AssemblerX8632/LowLevel.cpp",
      "new_id": "a963da5a44c774f7d9e3c5c1bc377919244ce226",
      "new_mode": 33188,
      "new_path": "unittest/AssemblerX8632/LowLevel.cpp"
    },
    {
      "type": "modify",
      "old_id": "c11868f64f4eb5484e940dc187ef3542107b06d4",
      "old_mode": 33188,
      "old_path": "unittest/AssemblerX8632/TestUtil.h",
      "new_id": "6adf27b525125d06bc132e726c9905139b511f85",
      "new_mode": 33188,
      "new_path": "unittest/AssemblerX8632/TestUtil.h"
    },
    {
      "type": "modify",
      "old_id": "ff36f7e43b550cb7971abff42217c7f918467668",
      "old_mode": 33188,
      "old_path": "unittest/AssemblerX8632/X87.cpp",
      "new_id": "79a2d457e75d44753e0efb3f0ff8d77eac6f29a0",
      "new_mode": 33188,
      "new_path": "unittest/AssemblerX8632/X87.cpp"
    },
    {
      "type": "modify",
      "old_id": "ee5c01c971025e58482ccd5a3b2c259c82c439ac",
      "old_mode": 33188,
      "old_path": "unittest/AssemblerX8664/GPRArith.cpp",
      "new_id": "09f29f70dec456d84e393df0660660669d0ec178",
      "new_mode": 33188,
      "new_path": "unittest/AssemblerX8664/GPRArith.cpp"
    },
    {
      "type": "modify",
      "old_id": "20f22523c1e0b1bfdc8b1348d69788373d19402a",
      "old_mode": 33188,
      "old_path": "unittest/AssemblerX8664/LowLevel.cpp",
      "new_id": "44ce00bb652cf71987d5e0790abd77d09dbf0c44",
      "new_mode": 33188,
      "new_path": "unittest/AssemblerX8664/LowLevel.cpp"
    },
    {
      "type": "modify",
      "old_id": "5a1d4a5523d9f964e9141ccb59a643319a9c0144",
      "old_mode": 33188,
      "old_path": "unittest/AssemblerX8664/TestUtil.h",
      "new_id": "455fe9c8c5b469b123dbb3928c3cc4e20cc07156",
      "new_mode": 33188,
      "new_path": "unittest/AssemblerX8664/TestUtil.h"
    }
  ]
}
