@@ -288,6 +288,8 @@ pub enum AddrSpaceKind {
288
288
ReadOnly ,
289
289
/// aka global
290
290
ReadWrite ,
291
+ /// For Harvard architectures, the program instruction's address space
292
+ Instruction ,
291
293
Named ( String ) ,
292
294
}
293
295
@@ -299,6 +301,7 @@ impl FromStr for AddrSpaceKind {
299
301
"alloca" => AddrSpaceKind :: Alloca ,
300
302
"readonly" => AddrSpaceKind :: ReadOnly ,
301
303
"readwrite" => AddrSpaceKind :: ReadWrite ,
304
+ "instruction" => AddrSpaceKind :: Instruction ,
302
305
named => AddrSpaceKind :: Named ( named. into ( ) ) ,
303
306
} )
304
307
}
@@ -310,6 +313,7 @@ impl fmt::Display for AddrSpaceKind {
310
313
& AddrSpaceKind :: Alloca => "alloca" ,
311
314
& AddrSpaceKind :: ReadOnly => "readonly" ,
312
315
& AddrSpaceKind :: ReadWrite => "readwrite" ,
316
+ & AddrSpaceKind :: Instruction => "instruction" ,
313
317
& AddrSpaceKind :: Named ( ref s) => s,
314
318
} )
315
319
}
@@ -389,10 +393,13 @@ impl Default for AddrSpaces {
389
393
fn default ( ) -> Self {
390
394
let mut asp = BTreeMap :: new ( ) ;
391
395
392
- let kinds = vec ! [ AddrSpaceKind :: ReadOnly ,
393
- AddrSpaceKind :: ReadWrite ,
394
- AddrSpaceKind :: Alloca ,
395
- AddrSpaceKind :: Flat , ] ;
396
+ let kinds = vec ! [
397
+ AddrSpaceKind :: ReadOnly ,
398
+ AddrSpaceKind :: ReadWrite ,
399
+ AddrSpaceKind :: Alloca ,
400
+ AddrSpaceKind :: Flat ,
401
+ AddrSpaceKind :: Instruction ,
402
+ ] ;
396
403
397
404
let insert = |asp : & mut BTreeMap < _ , _ > , kind, idx| {
398
405
let props = AddrSpaceProps {
0 commit comments