1/* 2 * Copyright (c) 1999-2007 Apple Inc. All Rights Reserved. 3 * 4 * @APPLE_LICENSE_HEADER_START@ 5 * 6 * This file contains Original Code and/or Modifications of Original Code 7 * as defined in and that are subject to the Apple Public Source License 8 * Version 2.0 (the 'License'). You may not use this file except in 9 * compliance with the License. Please obtain a copy of the License at 10 * http://www.opensource.apple.com/apsl/ and read it before using this 11 * file. 12 * 13 * The Original Code and all software distributed under the License are 14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 18 * Please see the License for the specific language governing rights and 19 * limitations under the License. 20 * 21 * @APPLE_LICENSE_HEADER_END@ 22 */ 23 24#ifdef __x86_64__ 25 26#include <mach/vm_param.h> 27 28 .text 29 .private_extern __a1a2_tramphead 30 .private_extern __a1a2_firsttramp 31 .private_extern __a1a2_nexttramp 32 .private_extern __a1a2_trampend 33 34.align PAGE_SHIFT 35__a1a2_tramphead: 36 popq %r10 37 andq $0xFFFFFFFFFFFFFFF8, %r10 38 subq $ PAGE_SIZE, %r10 39 movq %rdi, %rsi // arg1 -> arg2 40 movq (%r10), %rdi // block -> arg1 41 jmp *16(%rdi) 42 43.macro TrampolineEntry 44 callq __a1a2_tramphead 45 nop 46 nop 47 nop 48.endmacro 49 50.align 5 51__a1a2_firsttramp: 52 TrampolineEntry 53__a1a2_nexttramp: 54 TrampolineEntry 55 TrampolineEntry 56 TrampolineEntry 57 TrampolineEntry 58 TrampolineEntry 59 TrampolineEntry 60 TrampolineEntry 61 TrampolineEntry 62 TrampolineEntry 63 TrampolineEntry 64 TrampolineEntry 65 TrampolineEntry 66 TrampolineEntry 67 TrampolineEntry 68 TrampolineEntry 69 TrampolineEntry 70 TrampolineEntry 71 TrampolineEntry 72 TrampolineEntry 73 TrampolineEntry 74 TrampolineEntry 75 TrampolineEntry 76 TrampolineEntry 77 TrampolineEntry 78 TrampolineEntry 79 TrampolineEntry 80 TrampolineEntry 81 TrampolineEntry 82 TrampolineEntry 83 TrampolineEntry 84 TrampolineEntry 85 TrampolineEntry 86 TrampolineEntry 87 TrampolineEntry 88 TrampolineEntry 89 TrampolineEntry 90 TrampolineEntry 91 TrampolineEntry 92 TrampolineEntry 93 TrampolineEntry 94 TrampolineEntry 95 TrampolineEntry 96 TrampolineEntry 97 TrampolineEntry 98 TrampolineEntry 99 TrampolineEntry 100 TrampolineEntry 101 TrampolineEntry 102 TrampolineEntry 103 TrampolineEntry 104 TrampolineEntry 105 TrampolineEntry 106 TrampolineEntry 107 TrampolineEntry 108 TrampolineEntry 109 TrampolineEntry 110 TrampolineEntry 111 TrampolineEntry 112 TrampolineEntry 113 TrampolineEntry 114 TrampolineEntry 115 TrampolineEntry 116 TrampolineEntry 117 TrampolineEntry 118 TrampolineEntry 119 TrampolineEntry 120 TrampolineEntry 121 TrampolineEntry 122 TrampolineEntry 123 TrampolineEntry 124 TrampolineEntry 125 TrampolineEntry 126 TrampolineEntry 127 TrampolineEntry 128 TrampolineEntry 129 TrampolineEntry 130 TrampolineEntry 131 TrampolineEntry 132 TrampolineEntry 133 TrampolineEntry 134 TrampolineEntry 135 TrampolineEntry 136 TrampolineEntry 137 TrampolineEntry 138 TrampolineEntry 139 TrampolineEntry 140 TrampolineEntry 141 TrampolineEntry 142 TrampolineEntry 143 TrampolineEntry 144 TrampolineEntry 145 TrampolineEntry 146 TrampolineEntry 147 TrampolineEntry 148 TrampolineEntry 149 TrampolineEntry 150 TrampolineEntry 151 TrampolineEntry 152 TrampolineEntry 153 TrampolineEntry 154 TrampolineEntry 155 TrampolineEntry 156 TrampolineEntry 157 TrampolineEntry 158 TrampolineEntry 159 TrampolineEntry 160 TrampolineEntry 161 TrampolineEntry 162 TrampolineEntry 163 TrampolineEntry 164 TrampolineEntry 165 TrampolineEntry 166 TrampolineEntry 167 TrampolineEntry 168 TrampolineEntry 169 TrampolineEntry 170 TrampolineEntry 171 TrampolineEntry 172 TrampolineEntry 173 TrampolineEntry 174 TrampolineEntry 175 TrampolineEntry 176 TrampolineEntry 177 TrampolineEntry 178 TrampolineEntry 179 TrampolineEntry 180 TrampolineEntry 181 TrampolineEntry 182 TrampolineEntry 183 TrampolineEntry 184 TrampolineEntry 185 TrampolineEntry 186 TrampolineEntry 187 TrampolineEntry 188 TrampolineEntry 189 TrampolineEntry 190 TrampolineEntry 191 TrampolineEntry 192 TrampolineEntry 193 TrampolineEntry 194 TrampolineEntry 195 TrampolineEntry 196 TrampolineEntry 197 TrampolineEntry 198 TrampolineEntry 199 TrampolineEntry 200 TrampolineEntry 201 TrampolineEntry 202 TrampolineEntry 203 TrampolineEntry 204 TrampolineEntry 205 TrampolineEntry 206 TrampolineEntry 207 TrampolineEntry 208 TrampolineEntry 209 TrampolineEntry 210 TrampolineEntry 211 TrampolineEntry 212 TrampolineEntry 213 TrampolineEntry 214 TrampolineEntry 215 TrampolineEntry 216 TrampolineEntry 217 TrampolineEntry 218 TrampolineEntry 219 TrampolineEntry 220 TrampolineEntry 221 TrampolineEntry 222 TrampolineEntry 223 TrampolineEntry 224 TrampolineEntry 225 TrampolineEntry 226 TrampolineEntry 227 TrampolineEntry 228 TrampolineEntry 229 TrampolineEntry 230 TrampolineEntry 231 TrampolineEntry 232 TrampolineEntry 233 TrampolineEntry 234 TrampolineEntry 235 TrampolineEntry 236 TrampolineEntry 237 TrampolineEntry 238 TrampolineEntry 239 TrampolineEntry 240 TrampolineEntry 241 TrampolineEntry 242 TrampolineEntry 243 TrampolineEntry 244 TrampolineEntry 245 TrampolineEntry 246 TrampolineEntry 247 TrampolineEntry 248 TrampolineEntry 249 TrampolineEntry 250 TrampolineEntry 251 TrampolineEntry 252 TrampolineEntry 253 TrampolineEntry 254 TrampolineEntry 255 TrampolineEntry 256 TrampolineEntry 257 TrampolineEntry 258 TrampolineEntry 259 TrampolineEntry 260 TrampolineEntry 261 TrampolineEntry 262 TrampolineEntry 263 TrampolineEntry 264 TrampolineEntry 265 TrampolineEntry 266 TrampolineEntry 267 TrampolineEntry 268 TrampolineEntry 269 TrampolineEntry 270 TrampolineEntry 271 TrampolineEntry 272 TrampolineEntry 273 TrampolineEntry 274 TrampolineEntry 275 TrampolineEntry 276 TrampolineEntry 277 TrampolineEntry 278 TrampolineEntry 279 TrampolineEntry 280 TrampolineEntry 281 TrampolineEntry 282 TrampolineEntry 283 TrampolineEntry 284 TrampolineEntry 285 TrampolineEntry 286 TrampolineEntry 287 TrampolineEntry 288 TrampolineEntry 289 TrampolineEntry 290 TrampolineEntry 291 TrampolineEntry 292 TrampolineEntry 293 TrampolineEntry 294 TrampolineEntry 295 TrampolineEntry 296 TrampolineEntry 297 TrampolineEntry 298 TrampolineEntry 299 TrampolineEntry 300 TrampolineEntry 301 TrampolineEntry 302 TrampolineEntry 303 TrampolineEntry 304 TrampolineEntry 305 TrampolineEntry 306 TrampolineEntry 307 TrampolineEntry 308 TrampolineEntry 309 TrampolineEntry 310 TrampolineEntry 311 TrampolineEntry 312 TrampolineEntry 313 TrampolineEntry 314 TrampolineEntry 315 TrampolineEntry 316 TrampolineEntry 317 TrampolineEntry 318 TrampolineEntry 319 TrampolineEntry 320 TrampolineEntry 321 TrampolineEntry 322 TrampolineEntry 323 TrampolineEntry 324 TrampolineEntry 325 TrampolineEntry 326 TrampolineEntry 327 TrampolineEntry 328 TrampolineEntry 329 TrampolineEntry 330 TrampolineEntry 331 TrampolineEntry 332 TrampolineEntry 333 TrampolineEntry 334 TrampolineEntry 335 TrampolineEntry 336 TrampolineEntry 337 TrampolineEntry 338 TrampolineEntry 339 TrampolineEntry 340 TrampolineEntry 341 TrampolineEntry 342 TrampolineEntry 343 TrampolineEntry 344 TrampolineEntry 345 TrampolineEntry 346 TrampolineEntry 347 TrampolineEntry 348 TrampolineEntry 349 TrampolineEntry 350 TrampolineEntry 351 TrampolineEntry 352 TrampolineEntry 353 TrampolineEntry 354 TrampolineEntry 355 TrampolineEntry 356 TrampolineEntry 357 TrampolineEntry 358 TrampolineEntry 359 TrampolineEntry 360 TrampolineEntry 361 TrampolineEntry 362 TrampolineEntry 363 TrampolineEntry 364 TrampolineEntry 365 TrampolineEntry 366 TrampolineEntry 367 TrampolineEntry 368 TrampolineEntry 369 TrampolineEntry 370 TrampolineEntry 371 TrampolineEntry 372 TrampolineEntry 373 TrampolineEntry 374 TrampolineEntry 375 TrampolineEntry 376 TrampolineEntry 377 TrampolineEntry 378 TrampolineEntry 379 TrampolineEntry 380 TrampolineEntry 381 TrampolineEntry 382 TrampolineEntry 383 TrampolineEntry 384 TrampolineEntry 385 TrampolineEntry 386 TrampolineEntry 387 TrampolineEntry 388 TrampolineEntry 389 TrampolineEntry 390 TrampolineEntry 391 TrampolineEntry 392 TrampolineEntry 393 TrampolineEntry 394 TrampolineEntry 395 TrampolineEntry 396 TrampolineEntry 397 TrampolineEntry 398 TrampolineEntry 399 TrampolineEntry 400 TrampolineEntry 401 TrampolineEntry 402 TrampolineEntry 403 TrampolineEntry 404 TrampolineEntry 405 TrampolineEntry 406 TrampolineEntry 407 TrampolineEntry 408 TrampolineEntry 409 TrampolineEntry 410 TrampolineEntry 411 TrampolineEntry 412 TrampolineEntry 413 TrampolineEntry 414 TrampolineEntry 415 TrampolineEntry 416 TrampolineEntry 417 TrampolineEntry 418 TrampolineEntry 419 TrampolineEntry 420 TrampolineEntry 421 TrampolineEntry 422 TrampolineEntry 423 TrampolineEntry 424 TrampolineEntry 425 TrampolineEntry 426 TrampolineEntry 427 TrampolineEntry 428 TrampolineEntry 429 TrampolineEntry 430 TrampolineEntry 431 TrampolineEntry 432 TrampolineEntry 433 TrampolineEntry 434 TrampolineEntry 435 TrampolineEntry 436 TrampolineEntry 437 TrampolineEntry 438 TrampolineEntry 439 TrampolineEntry 440 TrampolineEntry 441 TrampolineEntry 442 TrampolineEntry 443 TrampolineEntry 444 TrampolineEntry 445 TrampolineEntry 446 TrampolineEntry 447 TrampolineEntry 448 TrampolineEntry 449 TrampolineEntry 450 TrampolineEntry 451 TrampolineEntry 452 TrampolineEntry 453 TrampolineEntry 454 TrampolineEntry 455 TrampolineEntry 456 TrampolineEntry 457 TrampolineEntry 458 TrampolineEntry 459 TrampolineEntry 460 TrampolineEntry 461 TrampolineEntry 462 TrampolineEntry 463 TrampolineEntry 464 TrampolineEntry 465 TrampolineEntry 466 TrampolineEntry 467 TrampolineEntry 468 TrampolineEntry 469 TrampolineEntry 470 TrampolineEntry 471 TrampolineEntry 472 TrampolineEntry 473 TrampolineEntry 474 TrampolineEntry 475 TrampolineEntry 476 TrampolineEntry 477 TrampolineEntry 478 TrampolineEntry 479 TrampolineEntry 480 TrampolineEntry 481 TrampolineEntry 482 TrampolineEntry 483 TrampolineEntry 484 TrampolineEntry 485 TrampolineEntry 486 TrampolineEntry 487 TrampolineEntry 488 TrampolineEntry 489 TrampolineEntry 490 TrampolineEntry 491 TrampolineEntry 492 TrampolineEntry 493 TrampolineEntry 494 TrampolineEntry 495 TrampolineEntry 496 TrampolineEntry 497 TrampolineEntry 498 TrampolineEntry 499 TrampolineEntry 500 TrampolineEntry 501 TrampolineEntry 502 TrampolineEntry 503 TrampolineEntry 504 TrampolineEntry 505 TrampolineEntry 506 TrampolineEntry 507 TrampolineEntry 508 TrampolineEntry 509 TrampolineEntry 510 TrampolineEntry 511 TrampolineEntry 512 TrampolineEntry 513 TrampolineEntry 514 TrampolineEntry 515 TrampolineEntry 516 TrampolineEntry 517 TrampolineEntry 518 TrampolineEntry 519 TrampolineEntry 520 TrampolineEntry 521 TrampolineEntry 522 TrampolineEntry 523 TrampolineEntry 524 TrampolineEntry 525 TrampolineEntry 526 TrampolineEntry 527 TrampolineEntry 528 TrampolineEntry 529 TrampolineEntry 530 TrampolineEntry 531 TrampolineEntry 532 TrampolineEntry 533 TrampolineEntry 534 TrampolineEntry 535 TrampolineEntry 536 TrampolineEntry 537 TrampolineEntry 538 TrampolineEntry 539 TrampolineEntry 540 TrampolineEntry 541 TrampolineEntry 542 TrampolineEntry 543 TrampolineEntry 544 TrampolineEntry 545 TrampolineEntry 546 TrampolineEntry 547 TrampolineEntry 548 TrampolineEntry 549 TrampolineEntry 550 TrampolineEntry 551 TrampolineEntry 552 TrampolineEntry 553 TrampolineEntry 554 TrampolineEntry 555 TrampolineEntry 556 TrampolineEntry 557 TrampolineEntry 558 TrampolineEntry 559 TrampolineEntry 560 TrampolineEntry 561 562__a1a2_trampend: 563 564#endif 565