From owner-freebsd-mips@freebsd.org Thu Apr 26 10:01:44 2018 Return-Path: Delivered-To: freebsd-mips@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A7C71FA8A4C for ; Thu, 26 Apr 2018 10:01:44 +0000 (UTC) (envelope-from dingorth@gmail.com) Received: from mail-wm0-x233.google.com (mail-wm0-x233.google.com [IPv6:2a00:1450:400c:c09::233]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E3F967A2DA for ; Thu, 26 Apr 2018 10:01:43 +0000 (UTC) (envelope-from dingorth@gmail.com) Received: by mail-wm0-x233.google.com with SMTP id l16so12130112wmh.2 for ; Thu, 26 Apr 2018 03:01:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=NjNY19P/LIW7So6G3XUr0C6cBNGREETTQCPAFQ8pl4g=; b=SvuIrtNKkn/x8U1fz/ZNulLRSUngvFGBGW3Veml4GboQFxEIffTx9PU+p+SxWaSVE7 fBt4CijaoacxgY2r6A2Nbzrq1AsAQ2ngY2Utf3Vxf2ZCbL7wYqJcF+n10mvRIX3dE27G Uy52lHeD8bRnuSSMwwsHCF4t71evyK1bOZAP82YHKlOg2B5sRoM9Nqe0mY6fDfdS7joa fl/Dgzixb8r5+HAmcksOpmrbpHN5qUsleV4EXdlPPl2EUP1/+DfaFZ8hZF3UJENM+Abv gLo5d2LLVKgvGTeBN/kIzr0EsJSBjf6zt4qc1VjBRdfpSY5k6Y7wZu/VNmy6uIN68NQu TNOA== 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=NjNY19P/LIW7So6G3XUr0C6cBNGREETTQCPAFQ8pl4g=; b=s6ipuOr6OpAr+lLFLIL3pbHj9KDppKBm9fHg7CAYjyHV/AHiIaVZ9Xbv+SzHe3DRiq DsV5QaeVpDnBxKVh7W2eX91605gh98TQDjxje2Xs37rCmq00KD2AmQhmNC7oZs5Mm4Ds ZlklcWSNYPJEkAOb7xGAzmUSmI0EJrzuwqfELD96ulxAmep+e2md9o/k/dWAvQWfOYTO CE/L9P2GTN9x7jgXbGmnMt/fXgzJFuNyIFRVlcqWezNMG+ibPyZ3mWr9HCX/nMNiK3+3 c4q0H70cnmAYABKW1u5940f2EtXo32EZ8mlWSehtnXTTzWPNOsDK6JL++XO1ivo3yffg LR+g== X-Gm-Message-State: ALQs6tCgJMtQcte3nVEaR66VyGfBbbFNSabTuHktZ044g0tBBqaCz+pn PuI/R/aezexHVoOdbu0imVMX9TYBKpUiIqxEx7I5PAIR X-Google-Smtp-Source: AIpwx48jackP2XHA9xt27oT5ZUo/+yrCdVgWKycyc29TK5du2kB+pJgUSdS6QXpxjtRhowLvSjK5zoNcXDlL8sMYTPU= X-Received: by 10.28.48.149 with SMTP id w143mr18860954wmw.88.1524736902655; Thu, 26 Apr 2018 03:01:42 -0700 (PDT) MIME-Version: 1.0 Received: by 10.28.102.193 with HTTP; Thu, 26 Apr 2018 03:01:11 -0700 (PDT) From: Jan Mazur Date: Thu, 26 Apr 2018 12:01:11 +0200 Message-ID: Subject: What is the purpose of MipsEmulateBranch function? To: freebsd-mips@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2018 10:01:44 -0000 Hi I'm wondering why FreeBSD has to simulate branches when the faulting instruction is in the branch delay slot. I'm curious about MipsEmulateBranch function, which is defined in http://bxr.su/FreeBSD/sys/mips/mips/trap.c#MipsEmulateBranch Why can't you just restart execution from the branch instruction?