Vault 7: Projects
This publication series is about specific projects related to the Vault 7 main publication.
MPLAB
®
XC16 C Compiler Users Guide
DS50002071C-page 318 2012-2013 Microchip Technology Inc.
__builtin_mulus
Description: Computes the product p0 x p1. Function arguments are integers with mixed signs, and the
function result is a signed long integer. The command-line option -Wconversions can be
used to detect unexpected sign conversions. This function supports the full range of
addressing modes of the instruction.
For example:
volatile register int a asm("A");
signed long result;
const signed int p0, p1;
const unsigned int p2, p3;
result = __builtin_mulus(p2,p0);
a = __builtin_mulus(p2,p0);
Prototype: signed long __builtin_mulus(const unsigned int p0, const signed int
p1);
Argument: p0 multiplicand
p1 multiplier
Return Value: Returns the signed long integer value of the product p0 x p1. The value can either be
returned into a variable of type signed long or directly into an accumulator register.
Assembler Operator/
Machine Instruction:
mul.us
__
builtin_muluu
Description: Computes the product p0 x p1. Function arguments are unsigned integers, and the function
result is an unsigned long integer. The command-line option -Wconversions can be used
to detect unexpected sign conversions. This function supports the full range of addressing
modes of the instruction, including immediate mode for operand p1.
For example:
volatile register int a asm("A");
unsigned long result;
const signed int p0, p1;
const unsigned int p2, p3;
result = __builtin_muluu(p2,p3);
a = __builtin_muluu(p2,p3);
Prototype: unsigned long __builtin_muluu(const unsigned int p0, const unsigned
int p1);
Argument: p0 multiplicand
p1 multiplier
Return Value: Returns the signed long integer value of the product p0 x p1. The value can either be
returned into a variable of type unsigned long or directly into an accumulator register.
Assembler Operator/
Machine Instruction:
mul.uu
__
builtin_nop
Description: Generates a nop instruction.
Prototype: void __builtin_nop(void);
Argument: None.
Return Value: Returns a no operation (nop).
Assembler Operator/
Machine Instruction:
nop
Protego_Release_01_05-Related-OEM-Documentation-MPLAB-XC16-C-Compiler.pdf