Changeset 66846 in webkit for trunk/JavaScriptCore/jit
- Timestamp:
- Sep 6, 2010, 1:29:01 PM (15 years ago)
- Location:
- trunk/JavaScriptCore/jit
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/jit/JIT.h
r66150 r66846 449 449 static const int sequencePutByIdInstructionSpace = 36; 450 450 static const int sequencePutByIdConstantSpace = 4; 451 #elif CPU(MIPS) 452 #if WTF_MIPS_ISA(1) 453 static const int patchOffsetPutByIdStructure = 16; 454 static const int patchOffsetPutByIdExternalLoad = 48; 455 static const int patchLengthPutByIdExternalLoad = 20; 456 static const int patchOffsetPutByIdPropertyMapOffset1 = 68; 457 static const int patchOffsetPutByIdPropertyMapOffset2 = 84; 458 static const int patchOffsetGetByIdStructure = 16; 459 static const int patchOffsetGetByIdBranchToSlowCase = 48; 460 static const int patchOffsetGetByIdExternalLoad = 48; 461 static const int patchLengthGetByIdExternalLoad = 20; 462 static const int patchOffsetGetByIdPropertyMapOffset1 = 68; 463 static const int patchOffsetGetByIdPropertyMapOffset2 = 88; 464 static const int patchOffsetGetByIdPutResult = 108; 465 #if ENABLE(OPCODE_SAMPLING) 466 #error "OPCODE_SAMPLING is not yet supported" 467 #else 468 static const int patchOffsetGetByIdSlowCaseCall = 44; 469 #endif 470 static const int patchOffsetOpCallCompareToJump = 32; 471 static const int patchOffsetMethodCheckProtoObj = 32; 472 static const int patchOffsetMethodCheckProtoStruct = 56; 473 static const int patchOffsetMethodCheckPutFunction = 88; 474 #else // WTF_MIPS_ISA(1) 475 static const int patchOffsetPutByIdStructure = 12; 476 static const int patchOffsetPutByIdExternalLoad = 44; 477 static const int patchLengthPutByIdExternalLoad = 16; 478 static const int patchOffsetPutByIdPropertyMapOffset1 = 60; 479 static const int patchOffsetPutByIdPropertyMapOffset2 = 76; 480 static const int patchOffsetGetByIdStructure = 12; 481 static const int patchOffsetGetByIdBranchToSlowCase = 44; 482 static const int patchOffsetGetByIdExternalLoad = 44; 483 static const int patchLengthGetByIdExternalLoad = 16; 484 static const int patchOffsetGetByIdPropertyMapOffset1 = 60; 485 static const int patchOffsetGetByIdPropertyMapOffset2 = 76; 486 static const int patchOffsetGetByIdPutResult = 92; 487 #if ENABLE(OPCODE_SAMPLING) 488 #error "OPCODE_SAMPLING is not yet supported" 489 #else 490 static const int patchOffsetGetByIdSlowCaseCall = 44; 491 #endif 492 static const int patchOffsetOpCallCompareToJump = 32; 493 static const int patchOffsetMethodCheckProtoObj = 32; 494 static const int patchOffsetMethodCheckProtoStruct = 52; 495 static const int patchOffsetMethodCheckPutFunction = 84; 496 #endif 451 497 #else 452 498 #error "JSVALUE32_64 not supported on this platform." -
trunk/JavaScriptCore/jit/JITOpcodes32_64.cpp
r66150 r66846 245 245 restoreReturnAddressBeforeReturn(regT3); 246 246 247 #elif CPU(MIPS) 248 // Load caller frame's scope chain into this callframe so that whatever we call can 249 // get to its global data. 250 emitGetFromCallFrameHeaderPtr(RegisterFile::CallerFrame, regT0); 251 emitGetFromCallFrameHeaderPtr(RegisterFile::ScopeChain, regT1, regT0); 252 emitPutToCallFrameHeader(regT1, RegisterFile::ScopeChain); 253 254 preserveReturnAddressAfterCall(regT3); // Callee preserved 255 emitPutToCallFrameHeader(regT3, RegisterFile::ReturnPC); 256 257 // Calling convention: f(a0, a1, a2, a3); 258 // Host function signature: f(ExecState*); 259 260 // Allocate stack space for 16 bytes (8-byte aligned) 261 // 16 bytes (unused) for 4 arguments 262 subPtr(Imm32(16), stackPointerRegister); 263 264 // Setup arg0 265 move(callFrameRegister, MIPSRegisters::a0); 266 267 // Call 268 emitGetFromCallFrameHeaderPtr(RegisterFile::Callee, MIPSRegisters::a2); 269 loadPtr(Address(MIPSRegisters::a2, OBJECT_OFFSETOF(JSFunction, m_executable)), regT2); 270 move(regT0, callFrameRegister); // Eagerly restore caller frame register to avoid loading from stack. 271 call(Address(regT2, executableOffsetToFunction)); 272 273 // Restore stack space 274 addPtr(Imm32(16), stackPointerRegister); 275 276 restoreReturnAddressBeforeReturn(regT3); 277 247 278 #elif ENABLE(JIT_OPTIMIZE_NATIVE_CALL) 248 279 #error "JIT_OPTIMIZE_NATIVE_CALL not yet supported on this platform." … … 325 356 // call the function 326 357 nativeCall = call(); 358 359 restoreReturnAddressBeforeReturn(regT3); 360 361 #elif CPU(MIPS) 362 // Load caller frame's scope chain into this callframe so that whatever we call can 363 // get to its global data. 364 emitGetFromCallFrameHeaderPtr(RegisterFile::CallerFrame, regT0); 365 emitGetFromCallFrameHeaderPtr(RegisterFile::ScopeChain, regT1, regT0); 366 emitPutToCallFrameHeader(regT1, RegisterFile::ScopeChain); 367 368 preserveReturnAddressAfterCall(regT3); // Callee preserved 369 emitPutToCallFrameHeader(regT3, RegisterFile::ReturnPC); 370 371 // Calling convention: f(a0, a1, a2, a3); 372 // Host function signature: f(ExecState*); 373 374 // Allocate stack space for 16 bytes (8-byte aligned) 375 // 16 bytes (unused) for 4 arguments 376 subPtr(Imm32(16), stackPointerRegister); 377 378 // Setup arg0 379 move(callFrameRegister, MIPSRegisters::a0); 380 381 // Call 382 emitGetFromCallFrameHeaderPtr(RegisterFile::Callee, MIPSRegisters::a2); 383 loadPtr(Address(MIPSRegisters::a2, OBJECT_OFFSETOF(JSFunction, m_executable)), regT2); 384 move(regT0, callFrameRegister); // Eagerly restore caller frame register to avoid loading from stack. 385 386 // call the function 387 nativeCall = call(); 388 389 // Restore stack space 390 addPtr(Imm32(16), stackPointerRegister); 327 391 328 392 restoreReturnAddressBeforeReturn(regT3); -
trunk/JavaScriptCore/jit/JITPropertyAccess32_64.cpp
r66150 r66846 641 641 storePtr(ImmPtr(newStructure), Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure))); 642 642 643 #if CPU(MIPS) 644 // For MIPS, we don't add sizeof(void*) to the stack offset. 645 load32(Address(stackPointerRegister, OBJECT_OFFSETOF(JITStackFrame, args[2]) + OBJECT_OFFSETOF(JSValue, u.asBits.payload)), regT3); 646 load32(Address(stackPointerRegister, OBJECT_OFFSETOF(JITStackFrame, args[2]) + OBJECT_OFFSETOF(JSValue, u.asBits.tag)), regT2); 647 #else 643 648 load32(Address(stackPointerRegister, OBJECT_OFFSETOF(JITStackFrame, args[2]) + sizeof(void*) + OBJECT_OFFSETOF(JSValue, u.asBits.payload)), regT3); 644 649 load32(Address(stackPointerRegister, OBJECT_OFFSETOF(JITStackFrame, args[2]) + sizeof(void*) + OBJECT_OFFSETOF(JSValue, u.asBits.tag)), regT2); 650 #endif 645 651 646 652 // Write the value -
trunk/JavaScriptCore/jit/JITStubs.cpp
r66150 r66846 311 311 #define PRESERVEDR4_OFFSET 68 312 312 // See DEFINE_STUB_FUNCTION for more information. 313 314 #elif CPU(MIPS) 315 316 #define PRESERVED_GP_OFFSET 60 317 #define PRESERVED_S0_OFFSET 64 318 #define PRESERVED_S1_OFFSET 68 319 #define PRESERVED_S2_OFFSET 72 320 #define PRESERVED_RETURN_ADDRESS_OFFSET 76 321 #define THUNK_RETURN_ADDRESS_OFFSET 80 322 #define REGISTER_FILE_OFFSET 84 323 #define CALLFRAME_OFFSET 88 324 #define EXCEPTION_OFFSET 92 325 #define ENABLE_PROFILER_REFERENCE_OFFSET 96 326 #define GLOBAL_DATA_OFFSET 100 327 #define STACK_LENGTH 104 313 328 314 329 #else … … 466 481 #elif CPU(MIPS) 467 482 468 asm volatile( 469 ".text" "\n" 470 ".align 2" "\n" 471 ".set noreorder" "\n" 472 ".set nomacro" "\n" 473 ".set nomips16" "\n" 474 ".globl " SYMBOL_STRING(ctiTrampoline) "\n" 475 ".ent " SYMBOL_STRING(ctiTrampoline) "\n" 476 SYMBOL_STRING(ctiTrampoline) ":" "\n" 477 "addiu $29,$29,-72" "\n" 478 "sw $31,44($29)" "\n" 479 "sw $18,40($29)" "\n" 480 "sw $17,36($29)" "\n" 481 "sw $16,32($29)" "\n" 482 #if WTF_MIPS_PIC 483 "sw $28,28($29)" "\n" 484 #endif 485 "move $16,$6 # set callFrameRegister" "\n" 486 "li $17,512 # set timeoutCheckRegister" "\n" 487 "move $25,$4 # move executableAddress to t9" "\n" 488 "sw $5,52($29) # store registerFile to current stack" "\n" 489 "sw $6,56($29) # store callFrame to curent stack" "\n" 490 "sw $7,60($29) # store exception to current stack" "\n" 491 "lw $8,88($29) # load enableProfilerReference from previous stack" "\n" 492 "lw $9,92($29) # load globalData from previous stack" "\n" 493 "sw $8,64($29) # store enableProfilerReference to current stack" "\n" 494 "jalr $25" "\n" 495 "sw $9,68($29) # store globalData to current stack" "\n" 496 "lw $16,32($29)" "\n" 497 "lw $17,36($29)" "\n" 498 "lw $18,40($29)" "\n" 499 "lw $31,44($29)" "\n" 500 "jr $31" "\n" 501 "addiu $29,$29,72" "\n" 502 ".set reorder" "\n" 503 ".set macro" "\n" 504 ".end " SYMBOL_STRING(ctiTrampoline) "\n" 505 ); 506 507 asm volatile( 508 ".text" "\n" 509 ".align 2" "\n" 510 ".set noreorder" "\n" 511 ".set nomacro" "\n" 512 ".set nomips16" "\n" 513 ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" 514 ".ent " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" 515 SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" 516 #if WTF_MIPS_PIC 517 "lw $28,28($29)" "\n" 518 ".set macro" "\n" 519 "la $25," SYMBOL_STRING(cti_vm_throw) "\n" 520 ".set nomacro" "\n" 521 "bal " SYMBOL_STRING(cti_vm_throw) "\n" 522 "move $4,$29" "\n" 523 #else 524 "jal " SYMBOL_STRING(cti_vm_throw) "\n" 525 "move $4,$29" "\n" 526 #endif 527 "lw $16,32($29)" "\n" 528 "lw $17,36($29)" "\n" 529 "lw $18,40($29)" "\n" 530 "lw $31,44($29)" "\n" 531 "jr $31" "\n" 532 "addiu $29,$29,72" "\n" 533 ".set reorder" "\n" 534 ".set macro" "\n" 535 ".end " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" 536 ); 537 538 asm volatile( 539 ".text" "\n" 540 ".align 2" "\n" 541 ".set noreorder" "\n" 542 ".set nomacro" "\n" 543 ".set nomips16" "\n" 544 ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" 545 ".ent " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" 546 SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n" 547 "lw $16,32($29)" "\n" 548 "lw $17,36($29)" "\n" 549 "lw $18,40($29)" "\n" 550 "lw $31,44($29)" "\n" 551 "jr $31" "\n" 552 "addiu $29,$29,72" "\n" 553 ".set reorder" "\n" 554 ".set macro" "\n" 555 ".end " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" 556 ); 483 #define PRESERVED_GP_OFFSET 28 484 #define PRESERVED_S0_OFFSET 32 485 #define PRESERVED_S1_OFFSET 36 486 #define PRESERVED_S2_OFFSET 40 487 #define PRESERVED_RETURN_ADDRESS_OFFSET 44 488 #define THUNK_RETURN_ADDRESS_OFFSET 48 489 #define REGISTER_FILE_OFFSET 52 490 #define CALLFRAME_OFFSET 56 491 #define EXCEPTION_OFFSET 60 492 #define ENABLE_PROFILER_REFERENCE_OFFSET 64 493 #define GLOBAL_DATA_OFFSET 68 494 #define STACK_LENGTH 72 557 495 558 496 #elif COMPILER(MSVC) && CPU(X86) … … 626 564 627 565 #endif // USE(JSVALUE32_64) 566 567 #if CPU(MIPS) 568 asm volatile( 569 ".text" "\n" 570 ".align 2" "\n" 571 ".set noreorder" "\n" 572 ".set nomacro" "\n" 573 ".set nomips16" "\n" 574 ".globl " SYMBOL_STRING(ctiTrampoline) "\n" 575 ".ent " SYMBOL_STRING(ctiTrampoline) "\n" 576 SYMBOL_STRING(ctiTrampoline) ":" "\n" 577 "addiu $29,$29,-" STRINGIZE_VALUE_OF(STACK_LENGTH) "\n" 578 "sw $31," STRINGIZE_VALUE_OF(PRESERVED_RETURN_ADDRESS_OFFSET) "($29)" "\n" 579 "sw $18," STRINGIZE_VALUE_OF(PRESERVED_S2_OFFSET) "($29)" "\n" 580 "sw $17," STRINGIZE_VALUE_OF(PRESERVED_S1_OFFSET) "($29)" "\n" 581 "sw $16," STRINGIZE_VALUE_OF(PRESERVED_S0_OFFSET) "($29)" "\n" 582 #if WTF_MIPS_PIC 583 "sw $28," STRINGIZE_VALUE_OF(PRESERVED_GP_OFFSET) "($29)" "\n" 584 #endif 585 "move $16,$6 # set callFrameRegister" "\n" 586 "li $17,512 # set timeoutCheckRegister" "\n" 587 "move $25,$4 # move executableAddress to t9" "\n" 588 "sw $5," STRINGIZE_VALUE_OF(REGISTER_FILE_OFFSET) "($29) # store registerFile to current stack" "\n" 589 "sw $6," STRINGIZE_VALUE_OF(CALLFRAME_OFFSET) "($29) # store callFrame to curent stack" "\n" 590 "sw $7," STRINGIZE_VALUE_OF(EXCEPTION_OFFSET) "($29) # store exception to current stack" "\n" 591 "lw $8," STRINGIZE_VALUE_OF(STACK_LENGTH + 16) "($29) # load enableProfilerReference from previous stack" "\n" 592 "lw $9," STRINGIZE_VALUE_OF(STACK_LENGTH + 20) "($29) # load globalData from previous stack" "\n" 593 "sw $8," STRINGIZE_VALUE_OF(ENABLE_PROFILER_REFERENCE_OFFSET) "($29) # store enableProfilerReference to current stack" "\n" 594 "jalr $25" "\n" 595 "sw $9," STRINGIZE_VALUE_OF(GLOBAL_DATA_OFFSET) "($29) # store globalData to current stack" "\n" 596 "lw $16," STRINGIZE_VALUE_OF(PRESERVED_S0_OFFSET) "($29)" "\n" 597 "lw $17," STRINGIZE_VALUE_OF(PRESERVED_S1_OFFSET) "($29)" "\n" 598 "lw $18," STRINGIZE_VALUE_OF(PRESERVED_S2_OFFSET) "($29)" "\n" 599 "lw $31," STRINGIZE_VALUE_OF(PRESERVED_RETURN_ADDRESS_OFFSET) "($29)" "\n" 600 "jr $31" "\n" 601 "addiu $29,$29," STRINGIZE_VALUE_OF(STACK_LENGTH) "\n" 602 ".set reorder" "\n" 603 ".set macro" "\n" 604 ".end " SYMBOL_STRING(ctiTrampoline) "\n" 605 ); 606 607 asm volatile( 608 ".text" "\n" 609 ".align 2" "\n" 610 ".set noreorder" "\n" 611 ".set nomacro" "\n" 612 ".set nomips16" "\n" 613 ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" 614 ".ent " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" 615 SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" 616 #if WTF_MIPS_PIC 617 "lw $28," STRINGIZE_VALUE_OF(PRESERVED_GP_OFFSET) "($29)" "\n" 618 ".set macro" "\n" 619 "la $25," SYMBOL_STRING(cti_vm_throw) "\n" 620 ".set nomacro" "\n" 621 "bal " SYMBOL_STRING(cti_vm_throw) "\n" 622 "move $4,$29" "\n" 623 #else 624 "jal " SYMBOL_STRING(cti_vm_throw) "\n" 625 "move $4,$29" "\n" 626 #endif 627 "lw $16," STRINGIZE_VALUE_OF(PRESERVED_S0_OFFSET) "($29)" "\n" 628 "lw $17," STRINGIZE_VALUE_OF(PRESERVED_S1_OFFSET) "($29)" "\n" 629 "lw $18," STRINGIZE_VALUE_OF(PRESERVED_S2_OFFSET) "($29)" "\n" 630 "lw $31," STRINGIZE_VALUE_OF(PRESERVED_RETURN_ADDRESS_OFFSET) "($29)" "\n" 631 "jr $31" "\n" 632 "addiu $29,$29," STRINGIZE_VALUE_OF(STACK_LENGTH) "\n" 633 ".set reorder" "\n" 634 ".set macro" "\n" 635 ".end " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" 636 ); 637 638 asm volatile( 639 ".text" "\n" 640 ".align 2" "\n" 641 ".set noreorder" "\n" 642 ".set nomacro" "\n" 643 ".set nomips16" "\n" 644 ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" 645 ".ent " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" 646 SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n" 647 "lw $16," STRINGIZE_VALUE_OF(PRESERVED_S0_OFFSET) "($29)" "\n" 648 "lw $17," STRINGIZE_VALUE_OF(PRESERVED_S1_OFFSET) "($29)" "\n" 649 "lw $18," STRINGIZE_VALUE_OF(PRESERVED_S2_OFFSET) "($29)" "\n" 650 "lw $31," STRINGIZE_VALUE_OF(PRESERVED_RETURN_ADDRESS_OFFSET) "($29)" "\n" 651 "jr $31" "\n" 652 "addiu $29,$29," STRINGIZE_VALUE_OF(STACK_LENGTH) "\n" 653 ".set reorder" "\n" 654 ".set macro" "\n" 655 ".end " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" 656 ); 657 #endif 628 658 629 659 #if COMPILER(GCC) && CPU(ARM_THUMB2) … … 804 834 805 835 #elif CPU(MIPS) 806 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedGP) == 28);807 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedS0) == 32);808 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedS1) == 36);809 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedS2) == 40);810 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedReturnAddress) == 44);811 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, thunkReturnAddress) == 48);812 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, registerFile) == 52);813 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, callFrame) == 56);814 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, exception) == 60);815 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, enabledProfilerReference) == 64);816 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, globalData) == 68);836 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedGP) == PRESERVED_GP_OFFSET); 837 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedS0) == PRESERVED_S0_OFFSET); 838 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedS1) == PRESERVED_S1_OFFSET); 839 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedS2) == PRESERVED_S2_OFFSET); 840 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedReturnAddress) == PRESERVED_RETURN_ADDRESS_OFFSET); 841 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, thunkReturnAddress) == THUNK_RETURN_ADDRESS_OFFSET); 842 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, registerFile) == REGISTER_FILE_OFFSET); 843 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, callFrame) == CALLFRAME_OFFSET); 844 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, exception) == EXCEPTION_OFFSET); 845 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, enabledProfilerReference) == ENABLE_PROFILER_REFERENCE_OFFSET); 846 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, globalData) == GLOBAL_DATA_OFFSET); 817 847 818 848 #endif … … 1087 1117 ".ent " SYMBOL_STRING(cti_##op) "\n" \ 1088 1118 SYMBOL_STRING(cti_##op) ":" "\n" \ 1089 "lw $28, 28($29)" "\n" \1090 "sw $31, 48($29)" "\n" \1119 "lw $28," STRINGIZE_VALUE_OF(PRESERVED_GP_OFFSET) "($29)" "\n" \ 1120 "sw $31," STRINGIZE_VALUE_OF(THUNK_RETURN_ADDRESS_OFFSET) "($29)" "\n" \ 1091 1121 ".set macro" "\n" \ 1092 1122 "la $25," SYMBOL_STRING(JITStubThunked_##op) "\n" \ … … 1094 1124 "bal " SYMBOL_STRING(JITStubThunked_##op) "\n" \ 1095 1125 "nop" "\n" \ 1096 "lw $31, 48($29)" "\n" \1126 "lw $31," STRINGIZE_VALUE_OF(THUNK_RETURN_ADDRESS_OFFSET) "($29)" "\n" \ 1097 1127 "jr $31" "\n" \ 1098 1128 "nop" "\n" \ … … 1117 1147 ".ent " SYMBOL_STRING(cti_##op) "\n" \ 1118 1148 SYMBOL_STRING(cti_##op) ":" "\n" \ 1119 "sw $31, 48($29)" "\n" \1149 "sw $31," STRINGIZE_VALUE_OF(THUNK_RETURN_ADDRESS_OFFSET) "($29)" "\n" \ 1120 1150 "jal " SYMBOL_STRING(JITStubThunked_##op) "\n" \ 1121 1151 "nop" "\n" \ 1122 "lw $31, 48($29)" "\n" \1152 "lw $31," STRINGIZE_VALUE_OF(THUNK_RETURN_ADDRESS_OFFSET) "($29)" "\n" \ 1123 1153 "jr $31" "\n" \ 1124 1154 "nop" "\n" \ -
trunk/JavaScriptCore/jit/JITStubs.h
r66150 r66846 205 205 #elif CPU(MIPS) 206 206 struct JITStackFrame { 207 void*reserved; // Unused207 JITStubArg reserved; // Unused 208 208 JITStubArg args[6]; 209 210 #if USE(JSVALUE32_64) 211 void* padding; // Make the overall stack length 8-byte aligned. 212 #endif 209 213 210 214 void* preservedGP; // store GP when using PIC code
Note:
See TracChangeset
for help on using the changeset viewer.