kernel/eka/common/arm/carray.cia
branchGCC_SURGE
changeset 159 185ac9ba847c
parent 156 12b6722e7753
equal deleted inserted replaced
158:3132f83c8488 159:185ac9ba847c
   948 	}
   948 	}
   949 
   949 
   950 #ifndef __KERNEL_MODE__
   950 #ifndef __KERNEL_MODE__
   951 EXPORT_C __NAKED__ void RArrayBase::HeapSortSigned()
   951 EXPORT_C __NAKED__ void RArrayBase::HeapSortSigned()
   952 	{
   952 	{
   953 	__EH_FNSTART
   953 //	__EH_FNSTART
   954 #ifdef __EABI__
   954 #ifdef __EABI__
   955 	// need sp aligned correctly
   955 	// need sp aligned correctly
   956 	asm("stmfd sp!, {r3-r11,lr} ");
   956 	asm("stmfd sp!, {r3-r11,lr} ");
   957 	__EH_FRAME_ADDRESS(sp,4)
   957 	__EH_FRAME_ADDRESS(sp,4)
   958 	__EH_FRAME_PUSH2(r4-r11,lr)
   958 	__EH_FRAME_PUSH2(r4-r11,lr)
  1037 	asm("mov r1, sp ");
  1037 	asm("mov r1, sp ");
  1038 	asm("mov r2, r10 ");
  1038 	asm("mov r2, r10 ");
  1039 	asm("bl wordmove ");				// entry[0]=[sp]
  1039 	asm("bl wordmove ");				// entry[0]=[sp]
  1040 	asm("add sp, sp, r10 ");			// free temporary stack space
  1040 	asm("add sp, sp, r10 ");			// free temporary stack space
  1041 	__JUMP(,r7);
  1041 	__JUMP(,r7);
  1042 	__EH_FNEND
  1042 //	__EH_FNEND
  1043 	}
  1043 	}
  1044 
  1044 
  1045 EXPORT_C __NAKED__ void RArrayBase::HeapSortUnsigned()
  1045 EXPORT_C __NAKED__ void RArrayBase::HeapSortUnsigned()
  1046 	{
  1046 	{
  1047 	__EH_FNSTART
  1047 //	__EH_FNSTART
  1048 #ifdef __EABI__
  1048 #ifdef __EABI__
  1049 	// need sp aligned correctly
  1049 	// need sp aligned correctly
  1050 	asm("stmfd sp!, {r3-r11,lr} ");
  1050 	asm("stmfd sp!, {r3-r11,lr} ");
  1051 	__EH_FRAME_ADDRESS(sp,4)
  1051 	__EH_FRAME_ADDRESS(sp,4)
  1052 	__EH_FRAME_PUSH2(r4-r11,lr)
  1052 	__EH_FRAME_PUSH2(r4-r11,lr)
  1131 	asm("mov r1, sp ");
  1131 	asm("mov r1, sp ");
  1132 	asm("mov r2, r10 ");
  1132 	asm("mov r2, r10 ");
  1133 	asm("bl wordmove ");				// entry[0]=[sp]
  1133 	asm("bl wordmove ");				// entry[0]=[sp]
  1134 	asm("add sp, sp, r10 ");			// free temporary stack space
  1134 	asm("add sp, sp, r10 ");			// free temporary stack space
  1135 	__JUMP(,r7);
  1135 	__JUMP(,r7);
  1136 	__EH_FNEND
  1136 //	__EH_FNEND
  1137 	}
  1137 	}
  1138 
  1138 
  1139 EXPORT_C __NAKED__ void RArrayBase::HeapSort(TGeneralLinearOrder anOrder)
  1139 EXPORT_C __NAKED__ void RArrayBase::HeapSort(TGeneralLinearOrder anOrder)
  1140 	{
  1140 	{
  1141 	__EH_FNSTART
  1141 //	__EH_FNSTART
  1142 #ifdef __EABI__
  1142 #ifdef __EABI__
  1143 	// need sp aligned correctly
  1143 	// need sp aligned correctly
  1144 	asm("stmfd sp!, {r3-r11,lr} ");
  1144 	asm("stmfd sp!, {r3-r11,lr} ");
  1145 	__EH_FRAME_ADDRESS(sp,4)
  1145 	__EH_FRAME_ADDRESS(sp,4)
  1146 	__EH_FRAME_PUSH2(r4-r11,lr)
  1146 	__EH_FRAME_PUSH2(r4-r11,lr)
  1228 	asm("mov r1, sp ");
  1228 	asm("mov r1, sp ");
  1229 	asm("mov r2, r10 ");
  1229 	asm("mov r2, r10 ");
  1230 	asm("bl wordmove ");				// entry[0]=[sp]
  1230 	asm("bl wordmove ");				// entry[0]=[sp]
  1231 	asm("ldr sp, [sp, r10] ");			// restore stack pointer, freeing temporary stack space
  1231 	asm("ldr sp, [sp, r10] ");			// restore stack pointer, freeing temporary stack space
  1232 	__POPRET("");
  1232 	__POPRET("");
  1233 	__EH_FNEND
  1233 //	__EH_FNEND
  1234 	}
  1234 	}
  1235 #endif	// __KERNEL_MODE__
  1235 #endif	// __KERNEL_MODE__
  1236 #endif	// __ARRAY_MACHINE_CODED__
  1236 #endif	// __ARRAY_MACHINE_CODED__