@@ -2798,10 +2798,6 @@ static void GenerateSubtypeNTestCacheStub(Assembler* assembler, int n) {
27982798
27992799 const Register kCacheArrayReg = TypeTestABI::kSubtypeTestCacheReg ;
28002800 const Register kScratchReg = TypeTestABI::kScratchReg ;
2801- const Register kInstanceCidOrFunction = R6;
2802- const Register kInstanceInstantiatorTypeArgumentsReg = R5;
2803- const Register kInstanceParentFunctionTypeArgumentsReg = R9;
2804- const Register kInstanceDelayedFunctionTypeArgumentsReg = R10;
28052801
28062802 // All of these must be distinct from TypeTestABI::kSubtypeTestCacheResultReg
28072803 // since it is used for kNullReg as well.
@@ -2819,29 +2815,30 @@ static void GenerateSubtypeNTestCacheStub(Assembler* assembler, int n) {
28192815
28202816 Label loop, not_closure;
28212817 if (n >= 5 ) {
2822- __ LoadClassIdMayBeSmi (kInstanceCidOrFunction ,
2818+ __ LoadClassIdMayBeSmi (STCInternalRegs:: kInstanceCidOrFunctionReg ,
28232819 TypeTestABI::TypeTestABI::kInstanceReg );
28242820 } else {
2825- __ LoadClassId (kInstanceCidOrFunction , TypeTestABI::kInstanceReg );
2821+ __ LoadClassId (STCInternalRegs::kInstanceCidOrFunctionReg ,
2822+ TypeTestABI::kInstanceReg );
28262823 }
2827- __ CompareImmediate (kInstanceCidOrFunction , kClosureCid );
2824+ __ CompareImmediate (STCInternalRegs:: kInstanceCidOrFunctionReg , kClosureCid );
28282825 __ b (¬_closure, NE);
28292826
28302827 // Closure handling.
28312828 {
2832- __ ldr (kInstanceCidOrFunction ,
2829+ __ ldr (STCInternalRegs:: kInstanceCidOrFunctionReg ,
28332830 FieldAddress (TypeTestABI::kInstanceReg ,
28342831 target::Closure::function_offset ()));
28352832 if (n >= 3 ) {
28362833 __ ldr (
2837- kInstanceInstantiatorTypeArgumentsReg ,
2834+ STCInternalRegs:: kInstanceInstantiatorTypeArgumentsReg ,
28382835 FieldAddress (TypeTestABI::kInstanceReg ,
28392836 target::Closure::instantiator_type_arguments_offset ()));
28402837 if (n >= 7 ) {
2841- __ ldr (kInstanceParentFunctionTypeArgumentsReg ,
2838+ __ ldr (STCInternalRegs:: kInstanceParentFunctionTypeArgumentsReg ,
28422839 FieldAddress (TypeTestABI::kInstanceReg ,
28432840 target::Closure::function_type_arguments_offset ()));
2844- __ ldr (kInstanceDelayedFunctionTypeArgumentsReg ,
2841+ __ ldr (STCInternalRegs:: kInstanceDelayedFunctionTypeArgumentsReg ,
28452842 FieldAddress (TypeTestABI::kInstanceReg ,
28462843 target::Closure::delayed_type_arguments_offset ()));
28472844 }
@@ -2854,8 +2851,8 @@ static void GenerateSubtypeNTestCacheStub(Assembler* assembler, int n) {
28542851 __ Bind (¬_closure);
28552852 if (n >= 3 ) {
28562853 Label has_no_type_arguments;
2857- __ LoadClassById (kScratchReg , kInstanceCidOrFunction );
2858- __ mov (kInstanceInstantiatorTypeArgumentsReg , kNullReg );
2854+ __ LoadClassById (kScratchReg , STCInternalRegs:: kInstanceCidOrFunctionReg );
2855+ __ mov (STCInternalRegs:: kInstanceInstantiatorTypeArgumentsReg , kNullReg );
28592856 __ LoadFieldFromOffset (
28602857 kScratchReg , kScratchReg ,
28612858 target::Class::host_type_arguments_field_offset_in_words_offset (),
@@ -2864,16 +2861,18 @@ static void GenerateSubtypeNTestCacheStub(Assembler* assembler, int n) {
28642861 __ b (&has_no_type_arguments, EQ);
28652862 __ add (kScratchReg , TypeTestABI::kInstanceReg ,
28662863 Operand (kScratchReg , LSL, 3 ));
2867- __ ldr (kInstanceInstantiatorTypeArgumentsReg ,
2864+ __ ldr (STCInternalRegs:: kInstanceInstantiatorTypeArgumentsReg ,
28682865 FieldAddress (kScratchReg , 0 ));
28692866 __ Bind (&has_no_type_arguments);
28702867
28712868 if (n >= 7 ) {
2872- __ mov (kInstanceParentFunctionTypeArgumentsReg , kNullReg );
2873- __ mov (kInstanceDelayedFunctionTypeArgumentsReg , kNullReg );
2869+ __ mov (STCInternalRegs::kInstanceParentFunctionTypeArgumentsReg ,
2870+ kNullReg );
2871+ __ mov (STCInternalRegs::kInstanceDelayedFunctionTypeArgumentsReg ,
2872+ kNullReg );
28742873 }
28752874 }
2876- __ SmiTag (kInstanceCidOrFunction );
2875+ __ SmiTag (STCInternalRegs:: kInstanceCidOrFunctionReg );
28772876 }
28782877
28792878 Label found, done, next_iteration;
@@ -2886,7 +2885,7 @@ static void GenerateSubtypeNTestCacheStub(Assembler* assembler, int n) {
28862885 target::SubtypeTestCache::kInstanceClassIdOrFunction ));
28872886 __ cmp (kScratchReg , Operand (kNullReg ));
28882887 __ b (&done, EQ);
2889- __ cmp (kScratchReg , Operand (kInstanceCidOrFunction ));
2888+ __ cmp (kScratchReg , Operand (STCInternalRegs:: kInstanceCidOrFunctionReg ));
28902889 if (n == 1 ) {
28912890 __ b (&found, EQ);
28922891 } else {
@@ -2901,7 +2900,8 @@ static void GenerateSubtypeNTestCacheStub(Assembler* assembler, int n) {
29012900 Address (kCacheArrayReg ,
29022901 target::kWordSize *
29032902 target::SubtypeTestCache::kInstanceTypeArguments ));
2904- __ cmp (kScratchReg , Operand (kInstanceInstantiatorTypeArgumentsReg ));
2903+ __ cmp (kScratchReg ,
2904+ Operand (STCInternalRegs::kInstanceInstantiatorTypeArgumentsReg ));
29052905 if (n == 3 ) {
29062906 __ b (&found, EQ);
29072907 } else {
@@ -2928,15 +2928,19 @@ static void GenerateSubtypeNTestCacheStub(Assembler* assembler, int n) {
29282928 target::kWordSize *
29292929 target::SubtypeTestCache::
29302930 kInstanceParentFunctionTypeArguments ));
2931- __ cmp (kScratchReg , Operand (kInstanceParentFunctionTypeArgumentsReg ));
2931+ __ cmp (
2932+ kScratchReg ,
2933+ Operand (STCInternalRegs::kInstanceParentFunctionTypeArgumentsReg ));
29322934 __ b (&next_iteration, NE);
29332935
29342936 __ ldr (kScratchReg ,
29352937 Address (kCacheArrayReg ,
29362938 target::kWordSize *
29372939 target::SubtypeTestCache::
29382940 kInstanceDelayedFunctionTypeArguments ));
2939- __ cmp (kScratchReg , Operand (kInstanceDelayedFunctionTypeArgumentsReg ));
2941+ __ cmp (
2942+ kScratchReg ,
2943+ Operand (STCInternalRegs::kInstanceDelayedFunctionTypeArgumentsReg ));
29402944 __ b (&found, EQ);
29412945 }
29422946 }
0 commit comments