In Opcodes.JSON:
"0xF8": { "mnemonic": "LD", "bytes": 2, "cycles": [ 12 ], "operands": [ { "name": "HL", "immediate": true }, { "name": "SP", "increment": true, "immediate": true },
You can see that the second operand SP has the "increment" flag set to true, implying SP should be incremented after the LD operation (as in LD [HL+], A/LD A, [HL+]). This is incorrect because this opcode should leave SP unchanged.