> ! /* Initialize the fields for each supported opcode. */ > ! static struct op_functions add_op = { sync_mem_fetch_add_optab, > ! sync_mem_add_fetch_optab, > ! sync_mem_add_optab, > ! sync_old_add_optab, > ! sync_new_add_optab, > ! sync_add_optab, > ! MINUS > ! };
Can these be const? > ! static struct op_functions xor_op = { sync_mem_fetch_xor_optab, > ! sync_mem_xor_fetch_optab, > ! sync_mem_xor_optab, > ! sync_old_xor_optab, > ! sync_new_xor_optab, > ! sync_xor_optab, > ! UNKNOWN > ! }; XOR is its own reverse. ;-) > ! if ((result = maybe_emit_op (optab, target, mem, val, true, model, > true))) > ! return result; Please don't embed = inside IF conditions. Otherwise this looks ok. r~