From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) by sourceware.org (Postfix) with ESMTPS id 00F153857C62 for ; Sat, 12 Sep 2020 20:17:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 00F153857C62 Received: by mail-lf1-x12c.google.com with SMTP id z17so9317041lfi.12 for ; Sat, 12 Sep 2020 13:17:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=+AF0MC7wQf8a2faYnZiCb0tcO79ab5QOabqRfet9enw=; b=kinAEGyR9PdRMcw3RnSPt6BEdIwqRpZ8b2npidLmiS5wOD+NUnVqPETGpSALM5tEuR NfP+Bdf8YPVLCpEmtx4jxlf8GQ+qNNMRfaCBdBtk07lFOjs4xhIwJlALIVbHp+ftaSQR zDpNDCfkMkoEaAoIFYle+iLIcHlxonvDdYwuiOBSaeJJdgRpBRsJDM7NSdkzJXH/4Fmz KQna35YCa2AYa+xdp330TCJtJRR8zrdOWqlMfeUKE9LFs1tvGkQe73RvwJe4zYxvxWgO S5mHPxtOSkiigPcOmUyfGoCi0yXoyL9QUKbM7JaHlDmqbjRsw7Y+Pvzn1XdsO9C7sGWC DeCQ== X-Gm-Message-State: AOAM530vie5htCkdI0Tp4GvWFbG80OLBX8ofkW1onj+PHvBkYsO7Sftm iOftcHH6q2Xp3RDOri3C4gnvb8W760miA+1FddvxWtAGa207HA== X-Google-Smtp-Source: ABdhPJwX3Mrj17+fXLVNV6MoJAEGYYh62aidIZbjSVNcUIMQuMQnGHKNM+/QtIgp4n/dbhDSHBIJO69KWW6gL510jOw= X-Received: by 2002:ac2:520f:: with SMTP id a15mr2181925lfl.494.1599941835117; Sat, 12 Sep 2020 13:17:15 -0700 (PDT) MIME-Version: 1.0 From: William Tambe Date: Sat, 12 Sep 2020 15:17:03 -0500 Message-ID: Subject: Unconditional trap To: gcc-help@gcc.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-3.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-help@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-help mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Sep 2020 20:17:18 -0000 I am currently using following for trap instruction: (define_insn "trap" [(trap_if (const_int 1) (const_int 0))] "" "brk") However it causes the compiler to generate a trap when address 0 is used; in the example below, I have a function that prints characters through the UART using address 0; but the resulting assembly generates a function that traps instead. #define UART_ADDR 0 void uart_print (char *s) { while (*s) { *(volatile char *)UART_ADDR = *s; ++s; } } How can one implement unconditional trap ?