Changeset View
Changeset View
Standalone View
Standalone View
sys/powerpc/powerpc/swtch32.S
| Show First 20 Lines • Show All 50 Lines • ▼ Show 20 Lines | |||||
| * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; | ||||
| * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | ||||
| * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR | ||||
| * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF | ||||
| * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
| */ | */ | ||||
| #include "assym.inc" | #include "assym.inc" | ||||
| #include "opt_sched.h" | |||||
| #include <sys/syscall.h> | #include <sys/syscall.h> | ||||
| #include <machine/trap.h> | #include <machine/trap.h> | ||||
| #include <machine/param.h> | #include <machine/param.h> | ||||
| #include <machine/asm.h> | #include <machine/asm.h> | ||||
| #include <machine/spr.h> | #include <machine/spr.h> | ||||
| ▲ Show 20 Lines • Show All 52 Lines • ▼ Show 20 Lines | |||||
| .L2: | .L2: | ||||
| mr %r3,%r14 /* restore old thread ptr */ | mr %r3,%r14 /* restore old thread ptr */ | ||||
| bl pmap_deactivate /* Deactivate the current pmap */ | bl pmap_deactivate /* Deactivate the current pmap */ | ||||
| sync /* Make sure all of that finished */ | sync /* Make sure all of that finished */ | ||||
| cpu_switchin: | cpu_switchin: | ||||
| #if defined(SMP) && defined(SCHED_ULE) | #if defined(SMP) | ||||
| /* Wait for the new thread to become unblocked */ | /* Wait for the new thread to become unblocked */ | ||||
| bl 1f | bl 1f | ||||
| 1: | 1: | ||||
| mflr %r6 | mflr %r6 | ||||
| addis %r6,%r6,(_GLOBAL_OFFSET_TABLE_-1b)@ha | addis %r6,%r6,(_GLOBAL_OFFSET_TABLE_-1b)@ha | ||||
| addi %r6,%r6,(_GLOBAL_OFFSET_TABLE_-1b)@l | addi %r6,%r6,(_GLOBAL_OFFSET_TABLE_-1b)@l | ||||
| mr %r30, %r6 /* Prepare for secure-PLT calls */ | mr %r30, %r6 /* Prepare for secure-PLT calls */ | ||||
| lwz %r6,blocked_lock@got(%r6) | lwz %r6,blocked_lock@got(%r6) | ||||
| ▲ Show 20 Lines • Show All 84 Lines • Show Last 20 Lines | |||||