IP Library Granted Patent US 7,870,542
Granted Patent B1
US 7,870,542 · App. 11/398,087 · Granted Jan 11, 2011

Calling system, method and computer program product

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,870,542
App. No.
11/398,087
Granted
Jan 11, 2011
Kind
B1
Abstract

A calling system, method and computer program product are provided. In use, at least one argument is pushed on a stack. In addition, a size of the at least one argument is pushed on the stack. Further, the size of the at least one argument is popped off the stack, and the stack is cleaned.

Claims (38)

1. A method executed by a processor comprising the steps of:

pushing at least one argument on a stack;

pushing a size of the at least one argument on the stack, wherein the size of the at least one argument pushed on the stack denotes a size of arguments passed to a called function;

popping the size of the at least one argument on the stack, wherein the size of the at least one argument popped off the stack is utilized to identify remaining arguments on the stack and to pop the remaining arguments off the stack;

incrementing a stack pointer by the size of the at least one argument popped off the stack in order to point to a first argument on the stack associated with the called function; and

utilizing the stack pointer to pop all data located on the stack above the stack pointer off the stack;

wherein the stack is cleaned by popping all arguments utilized by the called function off the stack based on the popped size of the at least one argument.

2. The method of claim 1 , wherein the pushing is carried out by a caller.

3. The method of claim 1 , wherein the popping and cleaning are carried out by a callee.

4. The method of claim 1 , wherein the size of the at least one argument includes a number of bytes of the at least one argument.

5. The method of claim 1 , further comprising, prior to the pushing, pushing an extended base pointer on the stack.

6. The method of claim 5 , further comprising storing an extended stack pointer in the extended base pointer.

7. The method of claim 6 , wherein the extended stack pointer points to an object on the stack.

8. The method of claim 6 , further comprising pushing local variables on the stack.

9. The method of claim 6 , further comprising pushing at least one register on the stack.

10. The method of claim 9 , wherein the at least one register is utilized in a function associated with the at least one argument.

11. The method of claim 9 , wherein the at least one register includes at least one of an extended account register, an extended base register, an extended count register, and an extended data register.

12. The method of claim 1 , further comprising calling a function associated with the argument prior to cleaning the stack.

13. The method of claim 1 , wherein the cleaning includes popping the at least one argument on the stack utilizing the size of the at least one argument.

14. The method of claim 1 , wherein the popping the size of the at least one argument on the stack includes adding the size to the stack pointer such that the stack pointer points to the first argument.

15. The method of claim 14 , wherein the stack pointer is utilized for popping the at least one argument on the stack.

16. The method of claim 1 , wherein the at least one argument is a variable argument.

17. A computer program product embodied on a non-transitory computer readable medium, comprising:

computer code for pushing at least one argument on a stack;

computer code for pushing a size of the at least one argument on the stack, wherein the size of the at least one argument pushed on the stack denotes a size of arguments passed to a called function;

computer code for popping the size of the at least one argument on the stack, wherein the size of the at least one argument popped off the stack is utilized to identify remaining arguments on the stack and to pop the remaining arguments off the stack;

computer code for incrementing a stack pointer by the size of the at least one argument popped off the stack in order to point to a first argument on the stack associated with the called function; and

computer code for utilizing the stack pointer to pop all data located on the stack above the stack pointer off the stack;

wherein the computer program product is operable such that the stack is cleaned by popping all arguments utilized by the called function off the stack based on the popped size of the at least one argument.

18. A system, comprising:

a processor for:

pushing at least one argument on a stack;

pushing a size of the at least one argument on the stack, wherein the size of the at least one argument pushed on the stack denotes a size of arguments passed to a called function;

popping the size of the at least one argument on the stack, wherein the size of the at least one argument popped off the stack is utilized to identify remaining arguments on the stack and to pop the remaining arguments off the stack;

incrementing a stack pointer by the size of the at least one argument popped off the stack in order to point to a first argument on the stack associated with the called function; and

utilizing the stack pointer to pop all data located on the stack above the stack pointer off the stack;

wherein the system is operable such that the stack is cleaned by popping all arguments utilized by the called function off the stack based on the popped size of the at least one argument.

19. The method of claim 1 , wherein the size of the at least one argument pushed on the stack indicates the size of the arguments associated with the called function that are stored on the stack.

Assignments (10)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 23, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 060792/0307 →
SECURITY INTEREST Recorded Mar 3, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 059354/0335 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045056/0676 Recorded Mar 2, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 059354/0213 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045055/0786 Recorded Oct 26, 2020
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 054238/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045056 FRAME 0676. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054206/0593 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045055 FRAME 786. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 055854/0047 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
CHANGE OF NAME AND ENTITY CONVERSION Recorded Aug 24, 2017
From: MCAFEE, INC.
To: MCAFEE, LLC
Reel/Frame 043665/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2010
From: RAMANANDA, GUBBI RAMACHANDRA
To: MCAFEE, INC.
Reel/Frame 023942/0920 →