replace push and pop with stmdb and ldmia