File: c_logi2op_log_r_shft_astat.S

package info (click to toggle)
gdb-doc 16.3-1
  • links: PTS, VCS
  • area: non-free
  • in suites: forky, sid, trixie
  • size: 244,264 kB
  • sloc: ansic: 2,134,731; asm: 375,582; exp: 206,875; cpp: 73,639; makefile: 70,232; sh: 26,038; python: 13,697; yacc: 11,341; ada: 7,358; xml: 6,098; perl: 5,077; pascal: 3,389; tcl: 2,986; f90: 2,764; lisp: 1,984; cs: 879; lex: 738; sed: 228; awk: 181; objc: 137; fortran: 57
file content (82 lines) | stat: -rw-r--r-- 1,081 bytes parent folder | download | duplicates (33)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# Test ASTAT bits with logical right shift (>>=)
# mach: bfin

.include "testutils.inc"
#include "test.h"
start

.macro __do val:req, shift:req, exp:req
	# First test when ASTAT starts with all bits cleared
	imm32 R2, \val;
	ASTAT = R0;
	R2 >>= \shift;
	R3 = ASTAT;
	CHECKREG R2, (\val >> \shift);
	CHECKREG R3, \exp;

	# Then test when ASTAT starts with all bits set
	imm32 R2, \val;
	ASTAT = R1;
	R2 >>= \shift;
	R3 = ASTAT;
	CHECKREG R3, (\exp) | ~(_AZ|_AN|_V|_V_COPY);
.endm

.macro _do shift:req, val:req
	# Automatically test all shifted values
	.if ((\val >> \shift) & 0xffffffff) == 0
		__do \val, \shift, _AZ
	.else
		.if (\val >> \shift) == 0x80000000
			__do \val, \shift, _AN
		.else
			__do \val, \shift, 0
		.endif
	.endif
	.if (\val >> 1) & 0xffffffff
		_do \shift, (\val >> 1)
	.endif
.endm

.macro do shift:req
_l_shft_\shift:
	_do \shift, 0x80000000
.endm

R0 = 0;
R1 = -1;

do 0
do 1
do 2
do 3
do 4
do 5
do 6
do 7
do 8
do 9
do 10
do 11
do 12
do 13
do 14
do 15
do 16
do 17
do 18
do 19
do 20
do 21
do 22
do 23
do 24
do 25
do 26
do 27
do 28
do 29
do 30
do 31

pass