)]}' { "commit": "4708b76f84e3d5b1e5057d50876f54972969c988", "tree": "1a8ab5ab310473d913b0984502046bd48331a750", "parents": [ "1d78c868971effacde64e9c9a8d1ae1bea13be17" ], "author": { "name": "Andrew Gerrand", "email": "adg@golang.org", "time": "Fri Nov 01 11:34:40 2013 +1100" }, "committer": { "name": "Andrew Gerrand", "email": "adg@golang.org", "time": "Fri Nov 01 11:34:40 2013 +1100" }, "message": "[release-branch.go1.2] cmd/5l, runtime: fix divide for profiling tracebacks on ARM\n\n««« CL 19910044 / 9eb64f5ef3a6\ncmd/5l, runtime: fix divide for profiling tracebacks on ARM\n\nTwo bugs:\n1. The first iteration of the traceback always uses LR when provided,\nwhich it is (only) during a profiling signal, but in fact LR is correct\nonly if the stack frame has not been allocated yet. Otherwise an\nintervening call may have changed LR, and the saved copy in the stack\nframe should be used. Fix in traceback_arm.c.\n\n2. The division runtime call adds 8 bytes to the stack. In order to\nkeep the traceback routines happy, it must copy the saved LR into\nthe new 0(SP). Change\n\n SUB $8, SP\n\ninto\n\n MOVW 0(SP), R11 // r11 is temporary, for use by linker\n MOVW.W R11, -8(SP)\n\nto update SP and 0(SP) atomically, so that the traceback always\nsees a saved LR at 0(SP).\n\nFixes #6681.\n\nR\u003dgolang-dev, r\nCC\u003dgolang-dev\nhttps://golang.org/cl/19910044\n»»»\n\nR\u003dgolang-dev\nCC\u003dgolang-dev\nhttps://golang.org/cl/20170048\n", "tree_diff": [ { "type": "modify", "old_id": "fb70599b514951ec60533faea0f6cf9339c59fa4", "old_mode": 33188, "old_path": "src/cmd/5l/noop.c", "new_id": "305ed684ee4d2c0a09aaad78060293abaad5a5ec", "new_mode": 33188, "new_path": "src/cmd/5l/noop.c" }, { "type": "modify", "old_id": "f1fc5faec689d050fc7124a8f0621801f36af4f8", "old_mode": 33188, "old_path": "src/pkg/runtime/pprof/pprof_test.go", "new_id": "eb76b93c44cfe2e584f28d49eec470f7f550fd4f", "new_mode": 33188, "new_path": "src/pkg/runtime/pprof/pprof_test.go" }, { "type": "modify", "old_id": "02586f036bba6dad9d60a27fab63b8b14ea5a510", "old_mode": 33188, "old_path": "src/pkg/runtime/traceback_arm.c", "new_id": "341aa20588010d7a3a0574dce69732a431084e7b", "new_mode": 33188, "new_path": "src/pkg/runtime/traceback_arm.c" } ] }