Add perform_semop()