From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com [IPv6:2a00:1450:4864:20::229]) by sourceware.org (Postfix) with ESMTPS id C045D386F442 for ; Sat, 25 Apr 2020 19:21:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org C045D386F442 Received: by mail-lj1-x229.google.com with SMTP id g4so13445065ljl.2 for ; Sat, 25 Apr 2020 12:21:43 -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=b7Bpq78BwOewI9dttFhZ+InSs2pmghVTB7JHgcvESJs=; b=LFoNOlVaD1nOPvsTNV5dIgkPelDKEGSTQqmIEy9ZtOSZcjvFfrP7GSqn71TkA6bBxl n95t1OhI/tvdKSxv1Dyooe5erD2JISZb+beNL9iECJ2H46z3OvyGYQgwxyyZnKKPgQN7 z1IjtzsdDdPHloAn1KFsYVOEldg00KdDB4pUHMulN0N528DLOpIoNS2mcBnQdbnxQsQb o8WgTm14a4vbrgdnf08OYSTMaV73T7TTHhz1QNcvEYVXBLAXHuYGBGh4IwHrzjbGb4tt rb/z0gMhpLBgJydY/Y9EQYqRinVDtd3Knt7m06G7ys5A49tps1vf4JyuA7zDSCiOZUTB 2kPg== X-Gm-Message-State: AGi0PuYVrEOaWqnF07UOCAMC1nf95KF5/hHqAPQjGRN45A4cxq5MbyoI uH521f4cATIZwjDFeMYg1wOLngK3/paSuQr5GbgizhZOOlM= X-Google-Smtp-Source: APiQypKYmCLnM3q0U8+RPKUdGUhuuIyitZOwStHop57O+4JpCo5bMPcVNrdst+Ii2dmXPYqdVPwKDNYf9+NbScEYLUI= X-Received: by 2002:a2e:3e15:: with SMTP id l21mr9543208lja.251.1587842501867; Sat, 25 Apr 2020 12:21:41 -0700 (PDT) MIME-Version: 1.0 From: William Tambe Date: Sat, 25 Apr 2020 15:21:28 -0400 Message-ID: Subject: how to use emit_clobber () ? To: gcc-help Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.3 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, 25 Apr 2020 19:21:45 -0000 The following define_expand is used to generate a call to __tls_get_addr() when the first operand of movsi is detected as a TLS symbol by tls_symbol_operand(). I am trying to accomplish generating a call to __tls_get_addr() passing two arguments in two registers where I would like to clobber the first register argument. However the use of emit_clobber() has no effect. Any idea, how emit_clobber should be used below ? (define_expand "movsi" [(set (match_operand:SI 0 "nonimmediate_operand" "") (match_operand:SI 1 "general_operand" ""))] "" { rtx op0 = operands[0]; rtx op1 = operands[1]; if (tls_symbolic_operand (op0, VOIDmode)) { rtx arg0 = gen_rtx_REG (SImode, ARCH_FIRST_ARG_REGNUM); rtx arg1 = gen_rtx_REG (SImode, ARCH_FIRST_ARG_REGNUM+1); emit_insn (arg1); emit_clobber (gen__movsi (arg0, op0)); rtx fn = gen_rtx_MEM (FUNCTION_MODE, gen_arch_tga()); rtx_insn *insn = emit_call_insn (gen_call_value (arg0, fn, const0_rtx)); RTL_CONST_CALL_P (insn) = 1; use_reg (&CALL_INSN_FUNCTION_USAGE (insn), arg0); use_reg (&CALL_INSN_FUNCTION_USAGE (insn), arg1); if (GET_CODE (op0) == MEM) arg0 = gen_rtx_MEM (SImode, arg0); operands[0] = arg0; } emit_insn (gen__movsi (operands[0], operands[1])); DONE; })