Changeset View
Changeset View
Standalone View
Standalone View
sys/powerpc/powerpc/swtch64.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/spr.h> | #include <machine/spr.h> | ||||
| #include <machine/param.h> | #include <machine/param.h> | ||||
| #include <machine/asm.h> | #include <machine/asm.h> | ||||
| ▲ Show 20 Lines • Show All 114 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 */ | ||||
| nop | nop | ||||
| 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 */ | ||||
| addis %r6,%r2,TOC_REF(blocked_lock)@ha | addis %r6,%r2,TOC_REF(blocked_lock)@ha | ||||
| ld %r6,TOC_REF(blocked_lock)@l(%r6) | ld %r6,TOC_REF(blocked_lock)@l(%r6) | ||||
| blocked_loop: | blocked_loop: | ||||
| ld %r7,TD_LOCK(%r13) | ld %r7,TD_LOCK(%r13) | ||||
| cmpd %r6,%r7 | cmpd %r6,%r7 | ||||
| isync | isync | ||||
| beq- blocked_loop | beq- blocked_loop | ||||
| ▲ Show 20 Lines • Show All 167 Lines • Show Last 20 Lines | |||||