{"abstract":"Multi-byte loads return byte-swapped values.","category":"Instruction set emulation","checks":8,"contract":"Input [mem, ops]: mem is a byte list; ops [op, addr, value] with lb/lbu/lh/lhu/lw loads and sb/sh/sw stores (sizes 1/2/4). An access whose address is not a multiple of its size yields 'misaligned' (checked first); one extending past memory yields 'fault'. Data is little-endian. lb/lh/lw sign-extend from their top bit, lbu/lhu zero-extend. Stores write the low size bytes of value and yield None. Return [results, final memory].","evaluation_group":"w2-instruction-set-emulation-load-store","failed_approach":"Fixing halfwords but not words still byte-swaps 32-bit loads.","family":"w2-instruction-set-emulation-load-store-load-byte-order","id":"FA-89491","implementations":{"attempt":{"sha256":"ec050391ee5d99a1d20c9b171f58713d08b1b8fad60a57ecfec36b20d9d7d74d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(*args):\n    mem, ops = args\n    mem = list(mem)\n    out = []\n    size = {'b': 1, 'h': 2, 'w': 4}\n    for op, addr, val in ops:\n        n = size[op[1]]\n        if addr % n != 0:\n            out.append('misaligned')\n            continue\n        if addr + n > len(mem):\n            out.append('fault')\n            continue\n        if op[0] == 's':\n            for k in range(n):\n                mem[addr + k] = (val >> (8 * k)) & 0xFF\n            out.append(None)\n        else:\n            v = 0\n            for k in range(n):\n                v |= mem[addr + k] << (8 * k if n < 4 else 8 * (3 - k))\n            if not op.endswith('u') and v >> (8 * n - 1):\n                v -= 1 << (8 * n)\n            out.append(v)\n    return [out, mem]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('signed byte load', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lb', 0, 0], ['lb', 1, 0]]], [[-127, 127], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('unsigned byte load', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lbu', 0, 0], ['lbu', 3, 0]]], [[129, 255], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('halfword loads', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 2, 0], ['lhu', 2, 0], ['lh', 6, 0], ['lhu', 4, 0]]], [[-2, 65534, 4660, 32769], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('word loads', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 0, 0], ['lw', 4, 0]]], [[-98431, 305430529], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('misaligned accesses', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 1, 0], ['lw', 2, 0], ['sh', 3, 4369], ['lb', 3, 0]]], [['misaligned', 'misaligned', 'misaligned', -1], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('store then load back', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sw', 8, 2309737966], ['lw', 8, 0], ['lbu', 9, 0], ['sh', 10, 23130], ['lh', 10, 0]]], [[None, -1985229330, 205, None, 23130], [129, 127, 254, 255, 1, 128, 52, 18, 238, 205, 90, 90]]), ('out of range', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 12, 0], ['lb', 11, 0], ['sb', 12, 1]]], [['fault', 0, 'fault'], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('byte store', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sb', 5, 511], ['lbu', 5, 0], ['lh', 4, 0]]], [[None, 255, -255], [129, 127, 254, 255, 1, 255, 52, 18, 0, 0, 0, 0]])], [('signed byte load', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lb', 0, 0], ['lb', 1, 0]]], [[-126, 127], [130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('unsigned byte load', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lbu', 0, 0], ['lbu', 3, 0]]], [[130, 255], [130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('halfword loads', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 2, 0], ['lhu', 2, 0], ['lh', 6, 0], ['lhu', 4, 0]]], [[-2, 65534, 4660, 32769], [130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('word loads', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 0, 0], ['lw', 4, 0]]], [[-98430, 305430529], [130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('misaligned accesses', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 1, 0], ['lw', 2, 0], ['sh', 3, 4369], ['lb', 3, 0]]], [['misaligned', 'misaligned', 'misaligned', -1], [130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('store then load back', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sw', 8, 2309737965], ['lw', 8, 0], ['lbu', 9, 0], ['sh', 10, 23130], ['lh', 10, 0]]], [[None, -1985229331, 205, None, 23130], [130, 127, 254, 255, 1, 128, 52, 18, 237, 205, 90, 90]]), ('out of range', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 12, 0], ['lb', 11, 0], ['sb', 12, 1]]], [['fault', 0, 'fault'], [130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('byte store', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sb', 5, 511], ['lbu', 5, 0], ['lh', 4, 0]]], [[None, 255, -255], [130, 127, 254, 255, 1, 255, 52, 18, 0, 0, 0, 0]])], [('signed byte load', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lb', 0, 0], ['lb', 1, 0]]], [[-125, 127], [131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('unsigned byte load', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lbu', 0, 0], ['lbu', 3, 0]]], [[131, 255], [131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('halfword loads', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 2, 0], ['lhu', 2, 0], ['lh', 6, 0], ['lhu', 4, 0]]], [[-2, 65534, 4660, 32769], [131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('word loads', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 0, 0], ['lw', 4, 0]]], [[-98429, 305430529], [131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('misaligned accesses', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 1, 0], ['lw', 2, 0], ['sh', 3, 4369], ['lb', 3, 0]]], [['misaligned', 'misaligned', 'misaligned', -1], [131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('store then load back', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sw', 8, 2309737964], ['lw', 8, 0], ['lbu', 9, 0], ['sh', 10, 23130], ['lh', 10, 0]]], [[None, -1985229332, 205, None, 23130], [131, 127, 254, 255, 1, 128, 52, 18, 236, 205, 90, 90]]), ('out of range', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 12, 0], ['lb', 11, 0], ['sb', 12, 1]]], [['fault', 0, 'fault'], [131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('byte store', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sb', 5, 511], ['lbu', 5, 0], ['lh', 4, 0]]], [[None, 255, -255], [131, 127, 254, 255, 1, 255, 52, 18, 0, 0, 0, 0]])], [('signed byte load', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lb', 0, 0], ['lb', 1, 0]]], [[-124, 127], [132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('unsigned byte load', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lbu', 0, 0], ['lbu', 3, 0]]], [[132, 255], [132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('halfword loads', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 2, 0], ['lhu', 2, 0], ['lh', 6, 0], ['lhu', 4, 0]]], [[-2, 65534, 4660, 32769], [132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('word loads', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 0, 0], ['lw', 4, 0]]], [[-98428, 305430529], [132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('misaligned accesses', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 1, 0], ['lw', 2, 0], ['sh', 3, 4369], ['lb', 3, 0]]], [['misaligned', 'misaligned', 'misaligned', -1], [132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('store then load back', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sw', 8, 2309737963], ['lw', 8, 0], ['lbu', 9, 0], ['sh', 10, 23130], ['lh', 10, 0]]], [[None, -1985229333, 205, None, 23130], [132, 127, 254, 255, 1, 128, 52, 18, 235, 205, 90, 90]]), ('out of range', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 12, 0], ['lb', 11, 0], ['sb', 12, 1]]], [['fault', 0, 'fault'], [132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('byte store', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sb', 5, 511], ['lbu', 5, 0], ['lh', 4, 0]]], [[None, 255, -255], [132, 127, 254, 255, 1, 255, 52, 18, 0, 0, 0, 0]])], [('signed byte load', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lb', 0, 0], ['lb', 1, 0]]], [[-123, 127], [133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('unsigned byte load', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lbu', 0, 0], ['lbu', 3, 0]]], [[133, 255], [133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('halfword loads', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 2, 0], ['lhu', 2, 0], ['lh', 6, 0], ['lhu', 4, 0]]], [[-2, 65534, 4660, 32769], [133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('word loads', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 0, 0], ['lw', 4, 0]]], [[-98427, 305430529], [133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('misaligned accesses', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 1, 0], ['lw', 2, 0], ['sh', 3, 4369], ['lb', 3, 0]]], [['misaligned', 'misaligned', 'misaligned', -1], [133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('store then load back', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sw', 8, 2309737962], ['lw', 8, 0], ['lbu', 9, 0], ['sh', 10, 23130], ['lh', 10, 0]]], [[None, -1985229334, 205, None, 23130], [133, 127, 254, 255, 1, 128, 52, 18, 234, 205, 90, 90]]), ('out of range', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 12, 0], ['lb', 11, 0], ['sb', 12, 1]]], [['fault', 0, 'fault'], [133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('byte store', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sb', 5, 511], ['lbu', 5, 0], ['lh', 4, 0]]], [[None, 255, -255], [133, 127, 254, 255, 1, 255, 52, 18, 0, 0, 0, 0]])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"3a42e3d046641f92d0837799f307f36c957a09fdaac6319bed80d62e5414c022","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(*args):\n    mem, ops = args\n    mem = list(mem)\n    out = []\n    size = {'b': 1, 'h': 2, 'w': 4}\n    for op, addr, val in ops:\n        n = size[op[1]]\n        if addr % n != 0:\n            out.append('misaligned')\n            continue\n        if addr + n > len(mem):\n            out.append('fault')\n            continue\n        if op[0] == 's':\n            for k in range(n):\n                mem[addr + k] = (val >> (8 * k)) & 0xFF\n            out.append(None)\n        else:\n            v = 0\n            for k in range(n):\n                v |= mem[addr + k] << (8 * (n - 1 - k))\n            if not op.endswith('u') and v >> (8 * n - 1):\n                v -= 1 << (8 * n)\n            out.append(v)\n    return [out, mem]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('signed byte load', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lb', 0, 0], ['lb', 1, 0]]], [[-127, 127], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('unsigned byte load', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lbu', 0, 0], ['lbu', 3, 0]]], [[129, 255], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('halfword loads', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 2, 0], ['lhu', 2, 0], ['lh', 6, 0], ['lhu', 4, 0]]], [[-2, 65534, 4660, 32769], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('word loads', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 0, 0], ['lw', 4, 0]]], [[-98431, 305430529], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('misaligned accesses', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 1, 0], ['lw', 2, 0], ['sh', 3, 4369], ['lb', 3, 0]]], [['misaligned', 'misaligned', 'misaligned', -1], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('store then load back', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sw', 8, 2309737966], ['lw', 8, 0], ['lbu', 9, 0], ['sh', 10, 23130], ['lh', 10, 0]]], [[None, -1985229330, 205, None, 23130], [129, 127, 254, 255, 1, 128, 52, 18, 238, 205, 90, 90]]), ('out of range', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 12, 0], ['lb', 11, 0], ['sb', 12, 1]]], [['fault', 0, 'fault'], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('byte store', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sb', 5, 511], ['lbu', 5, 0], ['lh', 4, 0]]], [[None, 255, -255], [129, 127, 254, 255, 1, 255, 52, 18, 0, 0, 0, 0]])], [('signed byte load', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lb', 0, 0], ['lb', 1, 0]]], [[-126, 127], [130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('unsigned byte load', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lbu', 0, 0], ['lbu', 3, 0]]], [[130, 255], [130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('halfword loads', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 2, 0], ['lhu', 2, 0], ['lh', 6, 0], ['lhu', 4, 0]]], [[-2, 65534, 4660, 32769], [130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('word loads', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 0, 0], ['lw', 4, 0]]], [[-98430, 305430529], [130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('misaligned accesses', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 1, 0], ['lw', 2, 0], ['sh', 3, 4369], ['lb', 3, 0]]], [['misaligned', 'misaligned', 'misaligned', -1], [130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('store then load back', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sw', 8, 2309737965], ['lw', 8, 0], ['lbu', 9, 0], ['sh', 10, 23130], ['lh', 10, 0]]], [[None, -1985229331, 205, None, 23130], [130, 127, 254, 255, 1, 128, 52, 18, 237, 205, 90, 90]]), ('out of range', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 12, 0], ['lb', 11, 0], ['sb', 12, 1]]], [['fault', 0, 'fault'], [130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('byte store', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sb', 5, 511], ['lbu', 5, 0], ['lh', 4, 0]]], [[None, 255, -255], [130, 127, 254, 255, 1, 255, 52, 18, 0, 0, 0, 0]])], [('signed byte load', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lb', 0, 0], ['lb', 1, 0]]], [[-125, 127], [131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('unsigned byte load', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lbu', 0, 0], ['lbu', 3, 0]]], [[131, 255], [131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('halfword loads', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 2, 0], ['lhu', 2, 0], ['lh', 6, 0], ['lhu', 4, 0]]], [[-2, 65534, 4660, 32769], [131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('word loads', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 0, 0], ['lw', 4, 0]]], [[-98429, 305430529], [131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('misaligned accesses', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 1, 0], ['lw', 2, 0], ['sh', 3, 4369], ['lb', 3, 0]]], [['misaligned', 'misaligned', 'misaligned', -1], [131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('store then load back', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sw', 8, 2309737964], ['lw', 8, 0], ['lbu', 9, 0], ['sh', 10, 23130], ['lh', 10, 0]]], [[None, -1985229332, 205, None, 23130], [131, 127, 254, 255, 1, 128, 52, 18, 236, 205, 90, 90]]), ('out of range', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 12, 0], ['lb', 11, 0], ['sb', 12, 1]]], [['fault', 0, 'fault'], [131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('byte store', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sb', 5, 511], ['lbu', 5, 0], ['lh', 4, 0]]], [[None, 255, -255], [131, 127, 254, 255, 1, 255, 52, 18, 0, 0, 0, 0]])], [('signed byte load', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lb', 0, 0], ['lb', 1, 0]]], [[-124, 127], [132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('unsigned byte load', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lbu', 0, 0], ['lbu', 3, 0]]], [[132, 255], [132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('halfword loads', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 2, 0], ['lhu', 2, 0], ['lh', 6, 0], ['lhu', 4, 0]]], [[-2, 65534, 4660, 32769], [132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('word loads', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 0, 0], ['lw', 4, 0]]], [[-98428, 305430529], [132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('misaligned accesses', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 1, 0], ['lw', 2, 0], ['sh', 3, 4369], ['lb', 3, 0]]], [['misaligned', 'misaligned', 'misaligned', -1], [132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('store then load back', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sw', 8, 2309737963], ['lw', 8, 0], ['lbu', 9, 0], ['sh', 10, 23130], ['lh', 10, 0]]], [[None, -1985229333, 205, None, 23130], [132, 127, 254, 255, 1, 128, 52, 18, 235, 205, 90, 90]]), ('out of range', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 12, 0], ['lb', 11, 0], ['sb', 12, 1]]], [['fault', 0, 'fault'], [132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('byte store', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sb', 5, 511], ['lbu', 5, 0], ['lh', 4, 0]]], [[None, 255, -255], [132, 127, 254, 255, 1, 255, 52, 18, 0, 0, 0, 0]])], [('signed byte load', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lb', 0, 0], ['lb', 1, 0]]], [[-123, 127], [133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('unsigned byte load', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lbu', 0, 0], ['lbu', 3, 0]]], [[133, 255], [133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('halfword loads', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 2, 0], ['lhu', 2, 0], ['lh', 6, 0], ['lhu', 4, 0]]], [[-2, 65534, 4660, 32769], [133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('word loads', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 0, 0], ['lw', 4, 0]]], [[-98427, 305430529], [133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('misaligned accesses', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 1, 0], ['lw', 2, 0], ['sh', 3, 4369], ['lb', 3, 0]]], [['misaligned', 'misaligned', 'misaligned', -1], [133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('store then load back', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sw', 8, 2309737962], ['lw', 8, 0], ['lbu', 9, 0], ['sh', 10, 23130], ['lh', 10, 0]]], [[None, -1985229334, 205, None, 23130], [133, 127, 254, 255, 1, 128, 52, 18, 234, 205, 90, 90]]), ('out of range', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 12, 0], ['lb', 11, 0], ['sb', 12, 1]]], [['fault', 0, 'fault'], [133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('byte store', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sb', 5, 511], ['lbu', 5, 0], ['lh', 4, 0]]], [[None, 255, -255], [133, 127, 254, 255, 1, 255, 52, 18, 0, 0, 0, 0]])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"50aaf363e70d70dcb05082a07425d434a3fdd4ba2d6e028bbe89c8c3d90bd9a8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(*args):\n    mem, ops = args\n    mem = list(mem)\n    out = []\n    size = {'b': 1, 'h': 2, 'w': 4}\n    for op, addr, val in ops:\n        n = size[op[1]]\n        if addr % n != 0:\n            out.append('misaligned')\n            continue\n        if addr + n > len(mem):\n            out.append('fault')\n            continue\n        if op[0] == 's':\n            for k in range(n):\n                mem[addr + k] = (val >> (8 * k)) & 0xFF\n            out.append(None)\n        else:\n            v = 0\n            for k in range(n):\n                v |= mem[addr + k] << (8 * k)\n            if not op.endswith('u') and v >> (8 * n - 1):\n                v -= 1 << (8 * n)\n            out.append(v)\n    return [out, mem]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('signed byte load', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lb', 0, 0], ['lb', 1, 0]]], [[-127, 127], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('unsigned byte load', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lbu', 0, 0], ['lbu', 3, 0]]], [[129, 255], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('halfword loads', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 2, 0], ['lhu', 2, 0], ['lh', 6, 0], ['lhu', 4, 0]]], [[-2, 65534, 4660, 32769], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('word loads', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 0, 0], ['lw', 4, 0]]], [[-98431, 305430529], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('misaligned accesses', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 1, 0], ['lw', 2, 0], ['sh', 3, 4369], ['lb', 3, 0]]], [['misaligned', 'misaligned', 'misaligned', -1], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('store then load back', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sw', 8, 2309737966], ['lw', 8, 0], ['lbu', 9, 0], ['sh', 10, 23130], ['lh', 10, 0]]], [[None, -1985229330, 205, None, 23130], [129, 127, 254, 255, 1, 128, 52, 18, 238, 205, 90, 90]]), ('out of range', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 12, 0], ['lb', 11, 0], ['sb', 12, 1]]], [['fault', 0, 'fault'], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('byte store', [[129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sb', 5, 511], ['lbu', 5, 0], ['lh', 4, 0]]], [[None, 255, -255], [129, 127, 254, 255, 1, 255, 52, 18, 0, 0, 0, 0]])], [('signed byte load', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lb', 0, 0], ['lb', 1, 0]]], [[-126, 127], [130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('unsigned byte load', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lbu', 0, 0], ['lbu', 3, 0]]], [[130, 255], [130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('halfword loads', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 2, 0], ['lhu', 2, 0], ['lh', 6, 0], ['lhu', 4, 0]]], [[-2, 65534, 4660, 32769], [130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('word loads', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 0, 0], ['lw', 4, 0]]], [[-98430, 305430529], [130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('misaligned accesses', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 1, 0], ['lw', 2, 0], ['sh', 3, 4369], ['lb', 3, 0]]], [['misaligned', 'misaligned', 'misaligned', -1], [130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('store then load back', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sw', 8, 2309737965], ['lw', 8, 0], ['lbu', 9, 0], ['sh', 10, 23130], ['lh', 10, 0]]], [[None, -1985229331, 205, None, 23130], [130, 127, 254, 255, 1, 128, 52, 18, 237, 205, 90, 90]]), ('out of range', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 12, 0], ['lb', 11, 0], ['sb', 12, 1]]], [['fault', 0, 'fault'], [130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('byte store', [[130, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sb', 5, 511], ['lbu', 5, 0], ['lh', 4, 0]]], [[None, 255, -255], [130, 127, 254, 255, 1, 255, 52, 18, 0, 0, 0, 0]])], [('signed byte load', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lb', 0, 0], ['lb', 1, 0]]], [[-125, 127], [131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('unsigned byte load', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lbu', 0, 0], ['lbu', 3, 0]]], [[131, 255], [131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('halfword loads', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 2, 0], ['lhu', 2, 0], ['lh', 6, 0], ['lhu', 4, 0]]], [[-2, 65534, 4660, 32769], [131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('word loads', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 0, 0], ['lw', 4, 0]]], [[-98429, 305430529], [131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('misaligned accesses', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 1, 0], ['lw', 2, 0], ['sh', 3, 4369], ['lb', 3, 0]]], [['misaligned', 'misaligned', 'misaligned', -1], [131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('store then load back', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sw', 8, 2309737964], ['lw', 8, 0], ['lbu', 9, 0], ['sh', 10, 23130], ['lh', 10, 0]]], [[None, -1985229332, 205, None, 23130], [131, 127, 254, 255, 1, 128, 52, 18, 236, 205, 90, 90]]), ('out of range', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 12, 0], ['lb', 11, 0], ['sb', 12, 1]]], [['fault', 0, 'fault'], [131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('byte store', [[131, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sb', 5, 511], ['lbu', 5, 0], ['lh', 4, 0]]], [[None, 255, -255], [131, 127, 254, 255, 1, 255, 52, 18, 0, 0, 0, 0]])], [('signed byte load', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lb', 0, 0], ['lb', 1, 0]]], [[-124, 127], [132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('unsigned byte load', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lbu', 0, 0], ['lbu', 3, 0]]], [[132, 255], [132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('halfword loads', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 2, 0], ['lhu', 2, 0], ['lh', 6, 0], ['lhu', 4, 0]]], [[-2, 65534, 4660, 32769], [132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('word loads', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 0, 0], ['lw', 4, 0]]], [[-98428, 305430529], [132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('misaligned accesses', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 1, 0], ['lw', 2, 0], ['sh', 3, 4369], ['lb', 3, 0]]], [['misaligned', 'misaligned', 'misaligned', -1], [132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('store then load back', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sw', 8, 2309737963], ['lw', 8, 0], ['lbu', 9, 0], ['sh', 10, 23130], ['lh', 10, 0]]], [[None, -1985229333, 205, None, 23130], [132, 127, 254, 255, 1, 128, 52, 18, 235, 205, 90, 90]]), ('out of range', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 12, 0], ['lb', 11, 0], ['sb', 12, 1]]], [['fault', 0, 'fault'], [132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('byte store', [[132, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sb', 5, 511], ['lbu', 5, 0], ['lh', 4, 0]]], [[None, 255, -255], [132, 127, 254, 255, 1, 255, 52, 18, 0, 0, 0, 0]])], [('signed byte load', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lb', 0, 0], ['lb', 1, 0]]], [[-123, 127], [133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('unsigned byte load', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lbu', 0, 0], ['lbu', 3, 0]]], [[133, 255], [133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('halfword loads', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 2, 0], ['lhu', 2, 0], ['lh', 6, 0], ['lhu', 4, 0]]], [[-2, 65534, 4660, 32769], [133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('word loads', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 0, 0], ['lw', 4, 0]]], [[-98427, 305430529], [133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('misaligned accesses', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lh', 1, 0], ['lw', 2, 0], ['sh', 3, 4369], ['lb', 3, 0]]], [['misaligned', 'misaligned', 'misaligned', -1], [133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('store then load back', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sw', 8, 2309737962], ['lw', 8, 0], ['lbu', 9, 0], ['sh', 10, 23130], ['lh', 10, 0]]], [[None, -1985229334, 205, None, 23130], [133, 127, 254, 255, 1, 128, 52, 18, 234, 205, 90, 90]]), ('out of range', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['lw', 12, 0], ['lb', 11, 0], ['sb', 12, 1]]], [['fault', 0, 'fault'], [133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]]), ('byte store', [[133, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0], [['sb', 5, 511], ['lbu', 5, 0], ['lh', 4, 0]]], [[None, 255, -255], [133, 127, 254, 255, 1, 255, 52, 18, 0, 0, 0, 0]])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"A deterministic bounded teaching model of one emulator rule; the instruction semantics are a stipulated contract inspired by common ISAs and are not a claim of cycle-exact or architectural conformance. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-instruction-set-emulation-load-store-load-byte-order","generated_at":"2026-09-29T14:51:17.936645+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Memory access emulation must reproduce endianness, extension and alignment traps bit-exactly.","repair":"Byte k of the access contributes bits 8k..8k+7.","root_cause":"The first byte in memory is placed in the most significant position.","sha256":"50dbcd81c560cba3fa2e95a25c8ffa2f9c463453f820401311b8e2344cbafa5e","title":"Loads assemble bytes big-endian · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.463,"exit_code":1,"observations":[{"actual":[[-127,127],[129,127,254,255,1,128,52,18,0,0,0,0]],"check":"signed byte load","expected":[[-127,127],[129,127,254,255,1,128,52,18,0,0,0,0]],"passed":true},{"actual":[[129,255],[129,127,254,255,1,128,52,18,0,0,0,0]],"check":"unsigned byte load","expected":[[129,255],[129,127,254,255,1,128,52,18,0,0,0,0]],"passed":true},{"actual":[[-2,65534,4660,32769],[129,127,254,255,1,128,52,18,0,0,0,0]],"check":"halfword loads","expected":[[-2,65534,4660,32769],[129,127,254,255,1,128,52,18,0,0,0,0]],"passed":true},{"actual":[[-2122318081,25179154],[129,127,254,255,1,128,52,18,0,0,0,0]],"check":"word loads","expected":[[-98431,305430529],[129,127,254,255,1,128,52,18,0,0,0,0]],"passed":false},{"actual":[["misaligned","misaligned","misaligned",-1],[129,127,254,255,1,128,52,18,0,0,0,0]],"check":"misaligned accesses","expected":[["misaligned","misaligned","misaligned",-1],[129,127,254,255,1,128,52,18,0,0,0,0]],"passed":true},{"actual":[[null,-288511095,205,null,23130],[129,127,254,255,1,128,52,18,238,205,90,90]],"check":"store then load back","expected":[[null,-1985229330,205,null,23130],[129,127,254,255,1,128,52,18,238,205,90,90]],"passed":false},{"actual":[["fault",0,"fault"],[129,127,254,255,1,128,52,18,0,0,0,0]],"check":"out of range","expected":[["fault",0,"fault"],[129,127,254,255,1,128,52,18,0,0,0,0]],"passed":true},{"actual":[[null,255,-255],[129,127,254,255,1,255,52,18,0,0,0,0]],"check":"byte store","expected":[[null,255,-255],[129,127,254,255,1,255,52,18,0,0,0,0]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"signed byte load\", \"actual\": [[-127, 127], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"expected\": [[-127, 127], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"passed\": true}, {\"check\": \"unsigned byte load\", \"actual\": [[129, 255], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"expected\": [[129, 255], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"passed\": true}, {\"check\": \"halfword loads\", \"actual\": [[-2, 65534, 4660, 32769], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"expected\": [[-2, 65534, 4660, 32769], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"passed\": true}, {\"check\": \"word loads\", \"actual\": [[-2122318081, 25179154], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"expected\": [[-98431, 305430529], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"passed\": false}, {\"check\": \"misaligned accesses\", \"actual\": [[\"misaligned\", \"misaligned\", \"misaligned\", -1], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"expected\": [[\"misaligned\", \"misaligned\", \"misaligned\", -1], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"passed\": true}, {\"check\": \"store then load back\", \"actual\": [[null, -288511095, 205, null, 23130], [129, 127, 254, 255, 1, 128, 52, 18, 238, 205, 90, 90]], \"expected\": [[null, -1985229330, 205, null, 23130], [129, 127, 254, 255, 1, 128, 52, 18, 238, 205, 90, 90]], \"passed\": false}, {\"check\": \"out of range\", \"actual\": [[\"fault\", 0, \"fault\"], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"expected\": [[\"fault\", 0, \"fault\"], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"passed\": true}, {\"check\": \"byte store\", \"actual\": [[null, 255, -255], [129, 127, 254, 255, 1, 255, 52, 18, 0, 0, 0, 0]], \"expected\": [[null, 255, -255], [129, 127, 254, 255, 1, 255, 52, 18, 0, 0, 0, 0]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.217,"exit_code":1,"observations":[{"actual":[[-127,127],[129,127,254,255,1,128,52,18,0,0,0,0]],"check":"signed byte load","expected":[[-127,127],[129,127,254,255,1,128,52,18,0,0,0,0]],"passed":true},{"actual":[[129,255],[129,127,254,255,1,128,52,18,0,0,0,0]],"check":"unsigned byte load","expected":[[129,255],[129,127,254,255,1,128,52,18,0,0,0,0]],"passed":true},{"actual":[[-257,65279,13330,384],[129,127,254,255,1,128,52,18,0,0,0,0]],"check":"halfword loads","expected":[[-2,65534,4660,32769],[129,127,254,255,1,128,52,18,0,0,0,0]],"passed":false},{"actual":[[-2122318081,25179154],[129,127,254,255,1,128,52,18,0,0,0,0]],"check":"word loads","expected":[[-98431,305430529],[129,127,254,255,1,128,52,18,0,0,0,0]],"passed":false},{"actual":[["misaligned","misaligned","misaligned",-1],[129,127,254,255,1,128,52,18,0,0,0,0]],"check":"misaligned accesses","expected":[["misaligned","misaligned","misaligned",-1],[129,127,254,255,1,128,52,18,0,0,0,0]],"passed":true},{"actual":[[null,-288511095,205,null,23130],[129,127,254,255,1,128,52,18,238,205,90,90]],"check":"store then load back","expected":[[null,-1985229330,205,null,23130],[129,127,254,255,1,128,52,18,238,205,90,90]],"passed":false},{"actual":[["fault",0,"fault"],[129,127,254,255,1,128,52,18,0,0,0,0]],"check":"out of range","expected":[["fault",0,"fault"],[129,127,254,255,1,128,52,18,0,0,0,0]],"passed":true},{"actual":[[null,255,511],[129,127,254,255,1,255,52,18,0,0,0,0]],"check":"byte store","expected":[[null,255,-255],[129,127,254,255,1,255,52,18,0,0,0,0]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"signed byte load\", \"actual\": [[-127, 127], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"expected\": [[-127, 127], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"passed\": true}, {\"check\": \"unsigned byte load\", \"actual\": [[129, 255], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"expected\": [[129, 255], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"passed\": true}, {\"check\": \"halfword loads\", \"actual\": [[-257, 65279, 13330, 384], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"expected\": [[-2, 65534, 4660, 32769], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"passed\": false}, {\"check\": \"word loads\", \"actual\": [[-2122318081, 25179154], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"expected\": [[-98431, 305430529], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"passed\": false}, {\"check\": \"misaligned accesses\", \"actual\": [[\"misaligned\", \"misaligned\", \"misaligned\", -1], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"expected\": [[\"misaligned\", \"misaligned\", \"misaligned\", -1], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"passed\": true}, {\"check\": \"store then load back\", \"actual\": [[null, -288511095, 205, null, 23130], [129, 127, 254, 255, 1, 128, 52, 18, 238, 205, 90, 90]], \"expected\": [[null, -1985229330, 205, null, 23130], [129, 127, 254, 255, 1, 128, 52, 18, 238, 205, 90, 90]], \"passed\": false}, {\"check\": \"out of range\", \"actual\": [[\"fault\", 0, \"fault\"], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"expected\": [[\"fault\", 0, \"fault\"], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"passed\": true}, {\"check\": \"byte store\", \"actual\": [[null, 255, 511], [129, 127, 254, 255, 1, 255, 52, 18, 0, 0, 0, 0]], \"expected\": [[null, 255, -255], [129, 127, 254, 255, 1, 255, 52, 18, 0, 0, 0, 0]], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.15,"exit_code":0,"observations":[{"actual":[[-127,127],[129,127,254,255,1,128,52,18,0,0,0,0]],"check":"signed byte load","expected":[[-127,127],[129,127,254,255,1,128,52,18,0,0,0,0]],"passed":true},{"actual":[[129,255],[129,127,254,255,1,128,52,18,0,0,0,0]],"check":"unsigned byte load","expected":[[129,255],[129,127,254,255,1,128,52,18,0,0,0,0]],"passed":true},{"actual":[[-2,65534,4660,32769],[129,127,254,255,1,128,52,18,0,0,0,0]],"check":"halfword loads","expected":[[-2,65534,4660,32769],[129,127,254,255,1,128,52,18,0,0,0,0]],"passed":true},{"actual":[[-98431,305430529],[129,127,254,255,1,128,52,18,0,0,0,0]],"check":"word loads","expected":[[-98431,305430529],[129,127,254,255,1,128,52,18,0,0,0,0]],"passed":true},{"actual":[["misaligned","misaligned","misaligned",-1],[129,127,254,255,1,128,52,18,0,0,0,0]],"check":"misaligned accesses","expected":[["misaligned","misaligned","misaligned",-1],[129,127,254,255,1,128,52,18,0,0,0,0]],"passed":true},{"actual":[[null,-1985229330,205,null,23130],[129,127,254,255,1,128,52,18,238,205,90,90]],"check":"store then load back","expected":[[null,-1985229330,205,null,23130],[129,127,254,255,1,128,52,18,238,205,90,90]],"passed":true},{"actual":[["fault",0,"fault"],[129,127,254,255,1,128,52,18,0,0,0,0]],"check":"out of range","expected":[["fault",0,"fault"],[129,127,254,255,1,128,52,18,0,0,0,0]],"passed":true},{"actual":[[null,255,-255],[129,127,254,255,1,255,52,18,0,0,0,0]],"check":"byte store","expected":[[null,255,-255],[129,127,254,255,1,255,52,18,0,0,0,0]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"signed byte load\", \"actual\": [[-127, 127], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"expected\": [[-127, 127], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"passed\": true}, {\"check\": \"unsigned byte load\", \"actual\": [[129, 255], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"expected\": [[129, 255], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"passed\": true}, {\"check\": \"halfword loads\", \"actual\": [[-2, 65534, 4660, 32769], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"expected\": [[-2, 65534, 4660, 32769], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"passed\": true}, {\"check\": \"word loads\", \"actual\": [[-98431, 305430529], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"expected\": [[-98431, 305430529], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"passed\": true}, {\"check\": \"misaligned accesses\", \"actual\": [[\"misaligned\", \"misaligned\", \"misaligned\", -1], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"expected\": [[\"misaligned\", \"misaligned\", \"misaligned\", -1], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"passed\": true}, {\"check\": \"store then load back\", \"actual\": [[null, -1985229330, 205, null, 23130], [129, 127, 254, 255, 1, 128, 52, 18, 238, 205, 90, 90]], \"expected\": [[null, -1985229330, 205, null, 23130], [129, 127, 254, 255, 1, 128, 52, 18, 238, 205, 90, 90]], \"passed\": true}, {\"check\": \"out of range\", \"actual\": [[\"fault\", 0, \"fault\"], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"expected\": [[\"fault\", 0, \"fault\"], [129, 127, 254, 255, 1, 128, 52, 18, 0, 0, 0, 0]], \"passed\": true}, {\"check\": \"byte store\", \"actual\": [[null, 255, -255], [129, 127, 254, 255, 1, 255, 52, 18, 0, 0, 0, 0]], \"expected\": [[null, 255, -255], [129, 127, 254, 255, 1, 255, 52, 18, 0, 0, 0, 0]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}