hartmannathan commented on code in PR #7029:
URL: https://github.com/apache/incubator-nuttx/pull/7029#discussion_r965153084


##########
libs/libc/machine/arm/gnu/tc32_setjmp.S:
##########
@@ -0,0 +1,148 @@
+/****************************************************************************
+ * libs/libc/machine/arm/gnu/tc32_setjmp.S
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Public Symbols
+ ****************************************************************************/
+
+       .globl  setjmp
+       .globl  longjmp
+
+       .file   "tc32_setjmp.S"
+
+/****************************************************************************
+ * Macros
+ ****************************************************************************/
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: setjmp
+ *
+ * Description:
+ *   Given the pointer to a register save area (in R0), save the state of the
+ *   all callee-saved registers
+ *
+ * C Function Prototype:
+ *   int setjmp(jmp_buf env);
+ *
+ * Input Parameters:
+ *   env - A pointer to the register save area in which to save the floating 
point
+ *     registers and core registers.  Since setjmp() can not be inlined, we
+ *     only need to save the ABI-specified callee-saved registers.
+ *

Review Comment:
   nxstyle doesn't check ASM files but if it did, it would complain here 
because the comment extends beyond the lines of asterisks



##########
libs/libc/machine/arm/gnu/tc32_setjmp.S:
##########
@@ -0,0 +1,148 @@
+/****************************************************************************
+ * libs/libc/machine/arm/gnu/tc32_setjmp.S
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Public Symbols
+ ****************************************************************************/
+
+       .globl  setjmp
+       .globl  longjmp
+
+       .file   "tc32_setjmp.S"
+
+/****************************************************************************
+ * Macros
+ ****************************************************************************/
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: setjmp
+ *
+ * Description:
+ *   Given the pointer to a register save area (in R0), save the state of the
+ *   all callee-saved registers
+ *
+ * C Function Prototype:
+ *   int setjmp(jmp_buf env);
+ *
+ * Input Parameters:
+ *   env - A pointer to the register save area in which to save the floating 
point
+ *     registers and core registers.  Since setjmp() can not be inlined, we
+ *     only need to save the ABI-specified callee-saved registers.
+ *
+ * Returned Value:
+ *   0      setjmp called directly
+ *   non-0  we justed returned from a longjmp()
+ *
+ ****************************************************************************/
+
+       .type           setjmp, function
+setjmp:
+
+       /* Store callee-saved Core registers */
+
+       tstorer         r4, [r0, #0]                    /* Save R4 */
+       tstorer         r5, [r0, #4]                    /* Save R5 */
+       tstorer         r6, [r0, #8]                    /* Save R6 */
+       tstorer         r7, [r0, #12]                   /* Save R7 */
+
+       tmov            r2, r8                          /* Save R8 */
+       tmov            r3, r9                          /* Save R9 */
+       tmov            r4, r10                         /* Save R10 */
+       tmov            r5, r11                         /* Save R11 */
+       tmov            r6, sp                          /* Save SP/R13 */
+       tmov            r7, lr                          /* Save LR/R14 */
+
+       tstorer         r2, [r0, #16]                   /* Save R8 */
+       tstorer         r3, [r0, #20]                   /* Save R9 */
+       tstorer         r4, [r0, #24]                   /* Save R10 */
+       tstorer         r5, [r0, #28]                   /* Save R11 */
+       tstorer         r6, [r0, #32]                   /* Save SP/R13 */
+       tstorer         r7, [r0, #36]                   /* Save LR/R14 */
+
+       tmovs           r0, #0
+       tjex            lr
+
+       .size           setjmp, .-setjmp
+
+/****************************************************************************
+ * Name: longjmp
+ *
+ * Description:
+ *   The longjmp() function used the information saved in env to transfer 
control
+ *   control back to the point where setjmp() was called and to restore 
("rewind")
+ *   the stack to its state at the time of the setjmp() call.  When control is
+ *   passed back to where setjmp() had been called, setjmp() will return with
+ *   'val', the second parameter passed to longjmp().
+ *

Review Comment:
   ditto



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to