Compare commits
No commits in common. "1c64abef6b109e4071757f1875c229b5561d83df" and "65ee273b61d487e2f05c1f0f4f9fa38178792061" have entirely different histories.
1c64abef6b
...
65ee273b61
@ -2,6 +2,6 @@
|
|||||||
op1 ← SignExtend32(Rm);
|
op1 ← SignExtend32(Rm);
|
||||||
op2 ← SignExtend32(Rn);
|
op2 ← SignExtend32(Rn);
|
||||||
op2 ← op2 + op1;
|
op2 ← op2 + op1;
|
||||||
t ← INT ((op2 < (- (1 << 31))) OR (op2 ≥ (1 << 31)));
|
t ← INT ((op2 < (- 231)) OR (op2 ≥ 231));
|
||||||
Rn ← Register(op2);
|
Rn ← Register(op2);
|
||||||
T ← Bit(t);
|
T ← Bit(t);
|
||||||
|
|||||||
@ -21,9 +21,9 @@ result ← mac + mul;
|
|||||||
IF (s = 1)
|
IF (s = 1)
|
||||||
IF (((result ⊕ mac) ∧ (result ⊕ mul))< 63 FOR 1 > = 1)
|
IF (((result ⊕ mac) ∧ (result ⊕ mul))< 63 FOR 1 > = 1)
|
||||||
IF (mac< 63 FOR 1 > = 0)
|
IF (mac< 63 FOR 1 > = 0)
|
||||||
result ← (1 << 47) - 1;
|
result ← 247 - 1;
|
||||||
ELSE
|
ELSE
|
||||||
ELSE result ← - (1 << 47);
|
ELSEresult ← - 247;
|
||||||
result ← SignedSaturate48(result);
|
result ← SignedSaturate48(result);
|
||||||
macl ← result;
|
macl ← result;
|
||||||
mach ← result >> 32;
|
mach ← result >> 32;
|
||||||
|
|||||||
@ -2,6 +2,6 @@
|
|||||||
op1 ← SignExtend32(Rm);
|
op1 ← SignExtend32(Rm);
|
||||||
op2 ← SignExtend32(Rn);
|
op2 ← SignExtend32(Rn);
|
||||||
op2 ← op2 - op1;
|
op2 ← op2 - op1;
|
||||||
t ← INT ((op2 < (- (1 << 31))) OR (op2 ≥ (1 << 31)));
|
t ← INT ((op2 < (- 231)) OR (op2 ≥ 231));
|
||||||
Rn ← Register(op2);
|
Rn ← Register(op2);
|
||||||
T ← Bit(t);
|
T ← Bit(t);
|
||||||
|
|||||||
125
syntax.txt
125
syntax.txt
@ -1,125 +0,0 @@
|
|||||||
identifier:
|
|
||||||
identifier-start
|
|
||||||
identifier identifier-continue
|
|
||||||
|
|
||||||
identifier-start:
|
|
||||||
nondigit
|
|
||||||
|
|
||||||
identifier-contine:
|
|
||||||
digit
|
|
||||||
nondigit
|
|
||||||
|
|
||||||
primary-expression:
|
|
||||||
identifier
|
|
||||||
constant
|
|
||||||
string-literal
|
|
||||||
"(" expression ")"
|
|
||||||
|
|
||||||
postfix-expression:
|
|
||||||
primary-expression
|
|
||||||
postfix-expression "(" argument-expression-list? ")"
|
|
||||||
postfix-expression "<" primary-expression "FOR" primary-expression ">"
|
|
||||||
postfix-expression "<" primary-expression ">"
|
|
||||||
|
|
||||||
assignment-expression-list:
|
|
||||||
assignment-expression
|
|
||||||
argument-expression-list "," assignment-expression
|
|
||||||
|
|
||||||
unary-expression:
|
|
||||||
postfix-expression
|
|
||||||
"NOT" unary-expression
|
|
||||||
"INT" unary-expression
|
|
||||||
"~" unary-expression # bitwise complement
|
|
||||||
"-" unary-expression # integer negation
|
|
||||||
"|" unary-expression "|" # integer absolute value
|
|
||||||
|
|
||||||
multiplicative-expression:
|
|
||||||
unary-expression
|
|
||||||
multiplicative-expression "×" unary-expression
|
|
||||||
multiplicative-expression "/" unary-expression
|
|
||||||
|
|
||||||
additive-expression:
|
|
||||||
multiplicative-expression
|
|
||||||
additive-expression "+" multiplicative-expression
|
|
||||||
additive-expression "-" multiplicative-expression
|
|
||||||
|
|
||||||
shift-expression:
|
|
||||||
additive-expression
|
|
||||||
shift-expression "<<" additive-expression
|
|
||||||
shift-expression ">>" additive-expression
|
|
||||||
|
|
||||||
relational-expression:
|
|
||||||
shift-expression
|
|
||||||
relational-expression "<" shift-expression
|
|
||||||
relational-expression ">" shift-expression
|
|
||||||
relational-expression "≤" shift-expression
|
|
||||||
relational-expression "≥" shift-expression
|
|
||||||
|
|
||||||
equality-expression:
|
|
||||||
relational-expression
|
|
||||||
equality-expression "=" relational-expression
|
|
||||||
equality-expression "≠" relational-expression
|
|
||||||
|
|
||||||
bitwise-AND-expression:
|
|
||||||
equality-expression
|
|
||||||
bitwise-AND-expression "∧" equality-expression
|
|
||||||
|
|
||||||
bitwise-XOR-expression:
|
|
||||||
bitwise-AND-expression
|
|
||||||
bitwise-XOR-expression "⊕" bitwise-AND-expression
|
|
||||||
|
|
||||||
bitwise-OR-expression:
|
|
||||||
bitwise-XOR-expression
|
|
||||||
bitwise-OR-expression "∨" bitwise-XOR-expression
|
|
||||||
|
|
||||||
logical-AND-expression:
|
|
||||||
bitwise-OR-expression
|
|
||||||
logical-AND-expression "AND" bitwise-OR-expression
|
|
||||||
|
|
||||||
logical-XOR-expression:
|
|
||||||
logical-AND-expression
|
|
||||||
logical-XOR-expression "XOR" logical-AND-expression
|
|
||||||
|
|
||||||
logical-OR-expression:
|
|
||||||
logical-XOR-expression
|
|
||||||
logical-OR-expression "OR" logical-XOR-expression
|
|
||||||
|
|
||||||
assignment-expression:
|
|
||||||
logical-OR-expression
|
|
||||||
identifier "←" assignment-expression
|
|
||||||
|
|
||||||
expression:
|
|
||||||
assignment-expression
|
|
||||||
|
|
||||||
# statement
|
|
||||||
|
|
||||||
statement:
|
|
||||||
unlabeled-statement
|
|
||||||
|
|
||||||
unlabeled-statement:
|
|
||||||
expression-statement
|
|
||||||
primary-block
|
|
||||||
|
|
||||||
primary-block:
|
|
||||||
compound-statement
|
|
||||||
selection-statement
|
|
||||||
|
|
||||||
secondary-block:
|
|
||||||
statement
|
|
||||||
|
|
||||||
compound-statement:
|
|
||||||
"{" block-item-list? "}"
|
|
||||||
|
|
||||||
block-item-list:
|
|
||||||
block-item
|
|
||||||
block-item-list block-item
|
|
||||||
|
|
||||||
block-item:
|
|
||||||
unlabeled-statement
|
|
||||||
|
|
||||||
expression-statement:
|
|
||||||
expression ";"
|
|
||||||
|
|
||||||
selection-statement:
|
|
||||||
"IF" "(" expression ")" secondary-block
|
|
||||||
"IF" "(" expression ")" secondary-block "ELSE" secondary-block
|
|
||||||
Loading…
x
Reference in New Issue
Block a user