Browse Source
see https://github.com/herumi/xbyak/issues/255 > Proof: https://godbolt.org/z/9vseq4Ynj > Xbyak currently implements it as: > ```c++ > void umonitor(const Reg& r) { > int idx = r.getIdx(); > if (idx > 7) XBYAK_THROW(ERR_BAD_PARAMETER) //umonitor DOES accept r8,r9,r10,etc this is NOT correct > int bit = r.getBit(); > if (BIT != bit) { > if ((BIT == 32 && bit == 16) || (BIT == 64 && bit == 32)) { > db(0x67); > } else { > XBYAK_THROW(ERR_BAD_SIZE_OF_REGISTER) > } > } > db(0xF3); db(0x0F); db(0xAE); setModRM(3, 6, idx); > } > ``` > My program was throwing Xbyak::Exception and I tracked it down to this particular umonitor Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3954 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev>lizzie/stable-shader-pools
committed by
crueter
1 changed files with 9 additions and 1 deletions
Loading…
Reference in new issue